Skip to content

docs: add anvil to Community Schemas table - #1469

Merged
clay-good merged 3 commits into
Fission-AI:mainfrom
jikkujoyce:docs/add-anvil-community-schema
Jul 28, 2026
Merged

docs: add anvil to Community Schemas table#1469
clay-good merged 3 commits into
Fission-AI:mainfrom
jikkujoyce:docs/add-anvil-community-schema

Conversation

@jikkujoyce

@jikkujoyce jikkujoyce commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

What this adds

Adds anvil to the Community Schemas table in docs/customization.md.

anvil (https://github.com/jikkujoyce/openspec-schemas) is a spec-driven workflow that layers TDD discipline and an adversarial review gate on top of the default flow: proposal → specs → design → review → test-plan → tasks → apply → verify.

Two things distinguish it from the built-in spec-driven schema:

  • Adversarial review gate. review.md must be written by a fresh-context, read-only reviewer — preferably a second model via whatever CLI is installed, otherwise a fresh-context subagent on the same model — never inline self-review. It emits a machine-readable VERDICT: APPROVE | APPROVE_WITH_CHANGES | REVISE line that instructs the agent to gate test-plan, tasks, and apply (advisory — OpenSpec only checks that artifact files exist, so mechanical enforcement needs a project-level CI step or hook). Editing a reviewed artifact after a verdict voids it and forces a new round.
  • TDD via a test-plan artifact. Every #### Scenario: in specs/ maps 1:1 to a named test before tasks may exist, and the table doubles as a live red/green ledger that verify audits. Changes with no executable test surface (docs, config, pure schema) map to an equivalent mechanical validation rather than a fabricated code test.

The schema is MIT-licensed and lives in its own repository with install instructions in INSTALL.md.

Follows the contribution note in the same section ("submit a PR adding a row to this table"). Documentation only — no code or schema changes, and no changeset since nothing ships in the package.

Test plan

  • Linked repository and schema path both resolve (https://github.com/jikkujoyce/openspec-schemas/tree/main/schemas/anvil)
  • Schema validates against the published CLI: copied schemas/anvil into a scratch project and ran openspec schema validate anvil✓ Schema 'anvil' is valid
  • Row renders in the existing table without touching any other row; the docs site picks it up automatically since website/content/docs is generated from docs/

Generated with Cursor using Claude Opus 5.

Summary by CodeRabbit

  • Documentation
    • Added the Anvil community schema to the customization guide.
    • Documented its workflow, including how an emitted VERDICT: affects downstream artifacts and enforcement via external automation.

Adds a row to the Community Schemas catalog in docs/customization.md for
the anvil schema (jikkujoyce/openspec-schemas), a spec-driven workflow
with TDD discipline and an adversarial review gate.

Documentation only; the schema itself lives in its own repository.

Generated with Cursor using Claude Opus 5.
Copilot AI review requested due to automatic review settings July 28, 2026 04:46
@jikkujoyce
jikkujoyce requested a review from a team as a code owner July 28, 2026 04:46
@jikkujoyce
jikkujoyce requested review from clay-good and removed request for a team July 28, 2026 04:46
@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Adds the anvil community schema to the Community Schemas table, including its maintainer, repository, workflow, and review-based gating behavior.

Changes

Community schema documentation

Layer / File(s) Summary
Add anvil schema entry
docs/customization.md
Adds the anvil schema’s maintainer, repository link, and review/test-plan/apply gating workflow to the Community Schemas table.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Possibly related PRs

Suggested reviewers: clay-good, alfred-openspec

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding the anvil entry to the Community Schemas table.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds the anvil community schema to the Community Schemas table in docs/customization.md, documenting its repository location and describing how it extends the spec-driven workflow with an adversarial review gate and a TDD-oriented test-plan artifact.

Changes:

  • Added a new Community Schemas table row for anvil
  • Documented the schema’s workflow steps and gating semantics via the VERDICT: line and test-plan/verify behavior

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/customization.md Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/customization.md`:
- Line 418: Update the anvil entry in the customization documentation to
describe the review VERDICT as an agent instruction for gating downstream
test-plan, tasks, and apply work, not as mechanically enforced gating. Mention
that enforcement requires project-level CI or hooks, while preserving the
existing workflow and artifact details.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: c4d630ec-07c8-4df8-80b1-9b6d078256b8

📥 Commits

Reviewing files that changed from the base of the PR and between fc886af and 1636874.

📒 Files selected for processing (1)
  • docs/customization.md

Comment thread docs/customization.md Outdated
clay-good and others added 2 commits July 28, 2026 09:52
The row said the VERDICT: line "gates test-plan, tasks, and apply",
which reads as enforcement. OpenSpec's artifact graph only checks that
artifact files exist, and the anvil bundle ships no CI or hook — its own
schema.yaml and README say the gate is honored by the agent, not
mechanically enforced. Reword to match, and backtick artifact names
consistently across the cell.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The cell ran nearly twice as long as any other row in the table. Drop
the verdict-staleness rule and the 1:1 mapping detail — both are README
material — and keep the flow, the adversarial review gate, its advisory
caveat, and the test-plan ledger.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@clay-good

Copy link
Copy Markdown
Collaborator

Thanks for the schema and the writeup, @jikkujoyce. I pushed two commits to the branch to address the review feedback, and verified the row's claims end to end before doing so.

@coderabbitai's point was correct, and your own docs say so. schemas/anvil/schema.yaml:13 states that OpenSpec requires: only enforces artifact existence, and the bundle's README calls the guarantee "advisory, not enforced." I confirmed that independently against this repo: artifactOutputExists() in src/core/artifact-graph/outputs.ts is pure file existence, and graph.ts gates on artifact.requires.every(req => completed.has(req)) — nothing ever reads VERDICT:. An empty review.md containing VERDICT: REVISE satisfies test-plan's requirement today. The row now says the verdict instructs the agent to gate, and points readers at their own CI or hook for enforcement. I applied the same correction to the PR description.

@copilot's backtick nit is fixed — every artifact reference in the cell is now a code span, including the flow chain and the gated list.

I also trimmed the cell. It was ~1.9x the longest sibling row; the verdict-staleness rule and the 1:1 mapping detail are README material, so they're dropped in favor of the flow, the review gate, its caveat, and the test-plan ledger.

Verification

  • schemas/anvil copied into a scratch project → openspec schema validate anvil✓ Schema 'anvil' is valid; schema which anvil resolves from project.
  • Drove a real change through it: openspec status --change try-anvil reports Schema: anvil and the graph proposal → specs → design → review → test-plan → tasks → verify in exactly the documented order, and openspec validate try-anvil passes.
  • Full suite green: 113 files, 3257 tests.
  • Repo, schemas/anvil path, MIT license, and INSTALL.md all resolve; every remaining factual claim in the row was checked line by line against upstream schema.yaml.
  • No website change needed — website/content/docs is gitignored and regenerated by sync:docs; I ran it and confirmed the row renders. No changeset, matching the precedent of docs: add e2e-runbooks to Community Schemas table #1255 and docs: add nanopm to community schemas catalog #1109.

@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- docs/customization.md: anvil entry ---'
rg -n -i -C 3 '\banvil\b' docs/customization.md || true

printf '%s\n' '--- artifact graph outlines ---'
ast-grep outline src/core/artifact-graph/outputs.ts --items all --view expanded
ast-grep outline src/core/artifact-graph/graph.ts --items all --view expanded

printf '%s\n' '--- cited enforcement-related code ---'
rg -n -C 6 'artifactOutputExists|requires\.every|completed\.has|VERDICT' \
  src/core/artifact-graph/outputs.ts src/core/artifact-graph/graph.ts || true

Length of output: 8278


@clay-good Thanks for the thorough follow-up. I verified the updated row in docs/customization.md: it now correctly describes VERDICT: as instructing the agent, explicitly notes that OpenSpec checks artifact existence only, and directs users to CI or hooks for mechanical enforcement.

The cited implementation supports that distinction: artifactOutputExists() checks resolved output presence, while dependency readiness is based on completed.has(req). The artifact references are also consistently formatted as code spans. This addresses my review finding.

🐇 ✅


✏️ Learnings added
Learnt from: clay-good
URL: https://github.com/Fission-AI/OpenSpec/pull/1469

Timestamp: 2026-07-28T14:56:46.035Z
Learning: In OpenSpec's TypeScript artifact graph, `src/core/artifact-graph/outputs.ts` `artifactOutputExists()` determines completion from the existence of resolved generated output files, and `src/core/artifact-graph/graph.ts` uses `artifact.requires.every(req => completed.has(req))` for dependency readiness. The artifact graph does not inspect a schema artifact's `VERDICT:` content, so schema review verdicts require an agent, CI, or hook for mechanical enforcement.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


If you found this review helpful, would you consider giving us a shout-out on X?

Thank you for using CodeRabbit!

@alfred-openspec alfred-openspec left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Verified exact head 3b808ba. The advisory wording now matches the schema's actual enforcement model, the row is concise, and the repository, schema path, license, and end-to-end schema validation all check out.

@clay-good
clay-good added this pull request to the merge queue Jul 28, 2026
Merged via the queue into Fission-AI:main with commit ec6cbb4 Jul 28, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants