Skip to content

docs: establish spec governance and restructure 28 specs#634

Merged
joshsmithxrm merged 14 commits intomainfrom
feature/spec-governance
Mar 19, 2026
Merged

docs: establish spec governance and restructure 28 specs#634
joshsmithxrm merged 14 commits intomainfrom
feature/spec-governance

Conversation

@joshsmithxrm
Copy link
Copy Markdown
Owner

Summary

  • Session 1: Established spec governance infrastructure — Constitution Spec Laws (SL1-SL5), updated template (Surfaces, Changelog, no Version), migrated 6 skills from README index to frontmatter grep, auto-generated README via scripts/generate-spec-readme.py, added /spec reconcile mode
  • Session 2: Restructured all 28 domain specs per the governance triage table — decomposed panel-parity.md into 5 feature specs, merged 5 TUI surface specs into domain specs, consolidated query/data-explorer/solutions specs, renamed vscode-webview-cdp-tool.md, moved 2 project specs to docs/plans/
  • Net result: 33 specs → 31 files (28 domain specs + 3 special). All specs have Surfaces frontmatter, Changelog sections, grep-friendly Code paths, and no Version lines.

Test Plan

  • Verify scripts/generate-spec-readme.py produces correct README from frontmatter
  • Verify all 28 domain specs have compliant frontmatter (Surfaces, Code, no Version)
  • Verify all cross-references point to existing files (no broken links)
  • Verify all 17 spec-governance ACs pass

Verification

  • /gates passed (docs-only — no code gates applicable)
  • /verify completed (surfaces: CLI — README generator script)
  • /qa completed (surfaces: CLI)
  • /review completed (findings: 5 — 3 important fixed, 2 suggestions)

🤖 Generated with Claude Code

joshsmithxrm and others added 12 commits March 18, 2026 18:36
Establishes naming, lifecycle, and granularity rules for specs.
Constitution amendment (SL1-SL5), template updates, auto-generated
README, /spec reconcile mode, and restructuring guidelines for all
32 existing specs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
6-phase plan: Constitution amendment, template update, skill migrations,
/spec reconcile mode, auto-generated README. Phases 1-2 parallel,
Phase 3 tasks parallel, sequential from Phase 4.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Phase 1: New Spec Laws section in Constitution covering naming (one
spec per domain concept), lifecycle (living docs, plans are ephemeral),
surface sections, frontmatter requirements, and deletion policy.
Removes specs/README.md as "Index" from CLAUDE.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Phase 2: Remove Version field, add Surfaces frontmatter, add
Changelog section replacing version numbers, add surface-specific
behavior subsections, strengthen Code: guidance requiring grep-friendly
path prefixes per Constitution SL4.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Phase 3: /spec, /spec-audit, /gates, /review, /implement, and
ext-panels now discover governing specs by grepping **Code:**
frontmatter lines instead of reading specs/README.md. Removes
hardcoded code-path-to-spec mappings from /implement. Adds
instruction for /implement to update spec Code: frontmatter
when creating new code paths.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Phase 4: /spec now has three modes — forward (create), update, and
reconcile (align spec with code). Reconcile mode enumerates public
types/methods, compares against ACs, includes member-count
verification to prevent the LLM summarization problem.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Phase 5: Add scripts/generate-spec-readme.py that scrapes H1, Status,
Surfaces, Code, and first Overview sentence from all specs. README is
now auto-generated with 33 specs listed (was 16 hand-maintained).
Includes AUTO-GENERATED comment to prevent hand-editing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…de path

Review fix: escape | characters in all frontmatter fields before
inserting into markdown table rows. Also change spec-governance.md
Code: from overly-broad specs/ prefix to System-wide per SL4.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Decompose panel-parity.md into 5 individual feature specs (import-jobs,
connection-references, environment-variables, metadata-browser, web-resources)
and merge Plugin Traces content into plugin-traces.md.

Merge TUI surface specs into domain specs per SL3:
- tui-plugin-traces.md → plugin-traces.md
- tui-migration.md → migration.md
- tui-plugin-registration.md → plugins.md
- tui-solutions.md → solutions.md (new)
- tui-environment-dashboard.md → environment-dashboard.md (new)

Consolidate enhancement/project specs per SL1/SL2:
- query-parity.md + query-engine-v2.md → query.md + docs/plans/
- vscode-data-explorer-*.md → data-explorer.md (new)
- solution-component-names.md → solutions.md
- vscode-persistence-and-solutions-polish.md → solutions.md + docs/plans/
- tui-foundation.md → docs/plans/ (project spec)

Rename per SL1: vscode-webview-cdp-tool.md → ext-verify-tool.md

Net: 14 specs removed, 8 created, 4 updated, 1 renamed.
Specs directory: 33 → 31 files (28 domain specs + 3 special).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Update authentication, connection-pooling, bulk-operations, cli, mcp,
tui, analyzers, dataverse-services, and update-check with Surfaces
frontmatter, Changelog sections, and Version line removal per spec
governance template compliance.

Regenerate specs/README.md to reflect all restructured specs (28 total).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…implement

The prose reference to "code-reviewer agent" was ambiguous — sessions
interpreted it as superpowers:code-reviewer (a built-in agent type)
instead of the project's /review skill. This caused PR #633's session
to invoke the wrong tool.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…README generator

Fix cross-references in solutions.md, data-explorer.md, ext-verify-tool.md,
environment-dashboard.md, and tui-verify-tool.md that pointed to deleted/renamed
spec files. Add try/except to generate-spec-readme.py for unreadable files.

Found by impartial code review.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly refines the documentation and specification management within the project. It introduces a robust governance model for specifications, ensuring that documentation remains accurate and consistent with the codebase. By centralizing spec discovery and enabling automated reconciliation, it streamlines the development workflow and enhances clarity for all contributors.

Highlights

  • Spec Governance Infrastructure Established: Implemented a new spec governance framework, including the addition of Spec Laws (SL1-SL5) to the Constitution, an updated spec template with 'Surfaces' frontmatter and a 'Changelog' section, and the introduction of an auto-generated specs/README.md to ensure consistency and prevent drift.
  • Spec Discovery Mechanism Modernized: Migrated all relevant skills (/spec, /spec-audit, /gates, /review, /implement, ext-panels) from relying on specs/README.md for spec discovery to directly grepping spec frontmatter for **Code:** lines, removing hardcoded mappings and improving accuracy.
  • Enhanced /spec Command with Reconcile Mode: The /spec command now includes a 'reconcile' mode that compares spec content against code, identifies missing or stale Acceptance Criteria (ACs), performs member-count verification, and proposes changes to align the spec with the current implementation.
  • Comprehensive Spec Restructuring: Restructured 28 existing domain specifications by decomposing panel-parity.md into five new feature specs, merging five TUI surface specs into their respective domain specs, consolidating query and data explorer specifications, renaming vscode-webview-cdp-tool.md, and moving two project specs to docs/plans/.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

…tructions

All 9 workflow state write sites across 10 skill/command files now call
`python scripts/workflow-state.py` instead of describing JSON manipulation
in prose. The utility enforces the canonical path (.workflow/state.json),
handles type coercion (now→timestamp, true/false→bool, digits→int), and
supports dotted key paths (gates.passed, verify.ext, etc.).

This prevents the path mismatch bug from PR #633 where the AI wrote state
to .claude/workflow-state.json instead of .workflow/state.json, making all
hooks blind to workflow progress.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a comprehensive and well-thought-out governance model for the project's specifications. The changes are extensive, including amending the constitution with 'Spec Laws', updating the spec template, and decoupling agent skills from a static README by introducing a dynamic, grep-based discovery mechanism. A new Python script to auto-generate the specs/README.md is a great addition for ensuring documentation stays synchronized. The restructuring of 28 specs, separating project plans from living domain documents and consolidating surface-specific details, significantly improves the organization and maintainability of the documentation. Overall, this is an excellent set of changes that will improve the quality and consistency of the project's specifications. I have one minor suggestion to improve the robustness of the new README generation script.

Take entire first overview line instead of regex sentence splitting,
which could prematurely truncate on abbreviations like "e.g."

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@joshsmithxrm joshsmithxrm merged commit 721885a into main Mar 19, 2026
7 checks passed
@joshsmithxrm joshsmithxrm deleted the feature/spec-governance branch March 19, 2026 00:02
@github-project-automation github-project-automation bot moved this from Todo to Done in PPDS Roadmap Mar 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant