Repository navigation
docs(#244): govern registered specification artifacts - #246
Conversation
AGENTS.md treated every docs/ file as a homogeneous hierarchy member, so agents following Rule 4 hand-edited docs/architecture.md and docs/vision.md. Those paths are registered specification artifacts whose registry digests live in .protobot/project.yaml; a hand edit fails ears-manager check with artifact.digest_mismatch. Label the two registered artifacts in the hierarchy list. Add author Rule 5 (updates go through ears-manager artifact put in an active change set; never edit the artifacts or project.yaml by hand) and review Rule 6 (check artifact_operations, refuse hand edits, require ears-manager check without artifact.digest_mismatch). Teach review-pr the same checks so review agents do not treat a missing hand edit as the fix. Refresh the skillsaw baseline for the new AGENTS.md path references and section-length info findings. Note: pre-commit could not fetch remote hook repositories (TLS certificate verification failed). Equivalent hooks were run via python scripts/lint.py and passed. Closes #244
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
|
🤖 Review · Commit: |
|
Risk Assessment: moderate (2/5) DetailsModerate risk driven by high recent churn and regression history on AGENTS.md (a protected path), balanced by low file count, bot authorship, and close alignment with linked issue #244. Previous runRisk Assessment: moderate (2/5) DetailsModerate risk driven by high recent churn and regression history on AGENTS.md (a protected path), balanced by low file count, bot authorship, and close alignment with linked issue #244. Previous run (2)Risk Assessment: moderate (2/5) DetailsModerate risk driven by high recent churn and regression history on AGENTS.md (a protected path), balanced by low file count, bot authorship, and close alignment with linked issue #244. Previous run (3)Risk Assessment: moderate (2/5) DetailsModerate risk driven by high recent churn and regression history on AGENTS.md (a protected path), balanced by low file count, bot authorship, and close alignment with linked issue #244. Previous run (4)Risk Assessment: moderate (2/5) DetailsModerate risk driven by high recent churn and regression history on AGENTS.md (a protected path), balanced by low file count, bot authorship, and close alignment with linked issue #244. Previous run (5)Risk Assessment: moderate (2/5) DetailsModerate risk driven by high recent churn and regression history on AGENTS.md (a protected path), balanced by low file count, bot authorship, and close alignment with linked issue #244. Previous run (6)Risk Assessment: moderate (2/5) DetailsModerate risk driven by high recent churn and regression history on AGENTS.md (a protected path), balanced by low file count, bot authorship, and close alignment with linked issue #244. Previous run (7)Risk Assessment: moderate (2/5) DetailsModerate risk driven by high recent churn and regression history on AGENTS.md (a protected path), balanced by low file count, bot authorship, and close alignment with linked issue #244. |
ReviewFindingsHigh
Medium
Low
Next steps:
Previous runReviewFindingsMedium
Next steps:
Previous run (2)ReviewFindingsMedium
Low
Labels: PR modifies governance rules and specification review skills Next steps:
Previous run (3)ReviewFindingsMedium
Next steps:
Previous run (4)ReviewFindingsMedium / Low / Info
Next steps:
Previous run (5)ReviewFindingsMedium / Low / Info
Next steps:
Previous run (6)ReviewFindingsMedium
Low
Next steps:
Previous run (7)ReviewFindingsMedium
Labels: PR modifies AGENTS.md specification governance and review skill procedures. Next steps:
|
|
🤖 Finished Review · ✅ Success · Started 4:04 PM UTC · Completed 4:21 PM UTC Commit: Runtime: pi · Model: google-vertex/gemini-3.8-flash → gemini-3.8-flash · Effort: high · Cost: $2.60 |
Scope Rules 5 and 6 and the review-pr skill to PRs that create or modify a registered specification artifact, or when Rule 4 identifies staleness in one. Ensure intra-entry restatements match the triggering condition identically. Replace the closing staleness sentence to prescribe ears-manager artifact put rather than editing by hand. Preserve human approval requirement for protected path AGENTS.md. Addresses #246
🔧 Fix agent — iteration 1 (bot-triggered)Scoped registered specification artifact rules and review skill to artifact modifications and Rule 4 staleness, matched intra-entry restatement terminology, and preserved protected-path merge gate. Fixed (4):
Disagreed (1):
Tests: passed CI inspections (6):
Decision points
Next steps:
|
|
🤖 Finished Fix · ✅ Success · Started 4:22 PM UTC · Completed 4:43 PM UTC Commit: Runtime: pi · Model: google-vertex/gemini-3.8-flash → gemini-3.8-flash · Effort: high · Cost: $0.71 |
|
🤖 Finished Review · ✅ Success · Started 4:44 PM UTC · Completed 5:06 PM UTC Commit: Runtime: pi · Model: google-vertex/gemini-3.8-flash → gemini-3.8-flash · Effort: high · Cost: $4.73 |
Require a change-set manifest entry under .protobot/change-sets/ whose artifact_id matches each created, modified, or stale registered specification artifact in AGENTS.md Rule 6 and the review-pr skill, rather than checking only artifact_operations field presence. Drop unobservable formatter/linter ordering check from Rule 6 review checklist while retaining it as author guidance in Rule 5. Qualify each Rule 4 reference in the review-pr skill as Rule 4 of 'Rules for creating or modifying specification documents' in AGENTS.md. Refresh skillsaw baseline for section-length and shifted line numbers. Note: AGENTS.md is a protected governance path requiring human approval merge gate. Pre-commit hooks were run via python3 scripts/lint.py due to pre-commit TLS certificate verification failure in sandbox. Addresses #246
🔧 Fix agent — iteration 2 (bot-triggered)Addressed review findings by requiring matching artifact_id manifest entries in AGENTS.md Rule 6 and review-pr skill, dropping unobservable formatter ordering from review checklist, qualifying Rule 4 references in review-pr skill, and updating skillsaw baseline. Fixed (3):
Disagreed (1):
Tests: passed CI inspections (6):
Decision points
Next steps:
|
|
🤖 Finished Fix · ✅ Success · Started 5:07 PM UTC · Completed 5:23 PM UTC Commit: Runtime: pi · Model: google-vertex/gemini-3.8-flash → gemini-3.8-flash · Effort: high · Cost: $0.70 |
|
🤖 Finished Review · ✅ Success · Started 5:24 PM UTC · Completed 5:39 PM UTC Commit: Runtime: pi · Model: google-vertex/gemini-3.8-flash → gemini-3.8-flash · Effort: high · Cost: $2.20 |
Replace change-set manifest matcher in AGENTS.md Rule 6 with a check requiring the PR's proposed manifest to contain an artifact_operations entry whose artifact_id matches each registered path's artifacts[].id in .protobot/project.yaml. Decompose the registered specification artifact check in review-pr skill into a top-level step with nested sub-bullets, align with ADR-0002 artifact_operations layout, and use double quotes for section title citations. Refresh skillsaw baseline for updated line numbers and tokens. Note: AGENTS.md is a protected governance path requiring human approval merge gate. Pre-commit hooks were run via python3 scripts/lint.py due to pre-commit TLS certificate verification failure in sandbox. Addresses #246
🔧 Fix agent — iteration 3 (bot-triggered)Addressed all review feedback on PR #246 by replacing the change-set manifest matcher in AGENTS.md Rule 6 and the review-pr skill with an artifact_operations check resolved against .protobot/project.yaml, decomposing the review-pr process step into nested sub-bullets, standardizing section title citations to double quotes, and refreshing the skillsaw baseline. Fixed (4):
Disagreed (1):
Tests: passed CI inspections (5):
Conflict update: skipped; strategy Decision points
Next steps:
|
|
🤖 Finished Fix · ✅ Success · Started 5:40 PM UTC · Completed 5:56 PM UTC Commit: Runtime: pi · Model: google-vertex/gemini-3.8-flash → gemini-3.8-flash · Effort: high · Cost: $0.99 |
|
🤖 Finished Review · ✅ Success · Started 5:57 PM UTC · Completed 6:16 PM UTC Commit: Runtime: pi · Model: google-vertex/gemini-3.8-flash → gemini-3.8-flash · Effort: high · Cost: $2.71 |
Align AGENTS.md Rule 6 check clause and findings clause with ADR-0002 and review-pr skill by requiring proposed change-set manifest added or modified under .protobot/change-sets/ to include an artifact_operations[] entry matching the registry id. Refresh skillsaw baseline for updated AGENTS.md line numbers and section token counts. Note: AGENTS.md is a protected governance path requiring human reviewer approval merge gate. Pre-commit hooks were run via python3 scripts/lint.py due to pre-commit TLS certificate verification failure in sandbox. Addresses #246
🔧 Fix agent — iteration 4 (bot-triggered)Addressed review feedback on AGENTS.md Rule 6 by rewriting the check clause and findings clause to require a proposed change-set manifest added or modified under .protobot/change-sets/ containing an artifact_operations[] entry whose artifact_id equals the registry id, matching ADR-0002 and the review-pr skill. Disagreed on the protected-path finding which requires human reviewer approval as a merge gate. Fixed (1):
Disagreed (1):
Tests: passed CI inspections (7):
Conflict update: skipped; strategy
Decision points
Next steps:
|
|
🤖 Finished Review · ✅ Success · Started 6:43 PM UTC · Completed 6:56 PM UTC Commit: Runtime: pi · Model: google-vertex/gemini-3.8-flash → gemini-3.8-flash · Effort: high · Cost: $1.65 |
Define proposed change-set test in AGENTS.md Rule 6 and review-pr skill using the approval rule: count a change-set only when ears-manager change-set show reports proposed (equivalently when its manifest path is absent from the default-branch tree) and never treat a path that already exists on the default branch as evidence of artifact put. Refresh skillsaw baseline for updated line numbers and section tokens. Note: AGENTS.md is a protected governance path requiring human reviewer approval merge gate. Pre-commit hooks were run via python3 scripts/lint.py due to pre-commit TLS certificate verification failure in sandbox. Addresses #246
🔧 Fix agent — iteration 5 (bot-triggered)Addressed review feedback on PR #246 by replacing the underspecified change-set check in AGENTS.md Rule 6 (requirement and findings clauses) and the review-pr skill with the canonical approval rule: counting change sets only when ears-manager change-set show reports proposed (manifest path absent from default-branch tree) and disallowing existing default-branch paths as evidence of artifact put. Updated skillsaw baseline accordingly. Fixed (1):
Disagreed (1):
Tests: passed CI inspections (6):
Conflict update: skipped; strategy
Decision points
Next steps:
|
|
🤖 Finished Fix · ✅ Success · Started 6:58 PM UTC · Completed 7:18 PM UTC Commit: Runtime: pi · Model: google-vertex/gemini-3.8-flash → gemini-3.8-flash · Effort: high · Cost: $0.82 |
|
🤖 Finished Review · ✅ Success · Started 7:19 PM UTC · Completed 7:41 PM UTC Commit: Runtime: pi · Model: google-vertex/gemini-3.8-flash → gemini-3.8-flash · Effort: high · Cost: $3.96 |
|
🤖 Finished Fix · ❌ Failure (running pre-script: exit status 1: Fix iteration 6 exceeds bot cap of 5. Escalating to human. The review→fix loop has run 6 times without converging. A human can still direct the agent with /fs-fix (u…) · Started 7:42 PM UTC · Completed 7:42 PM UTC Commit: Effort: high |
|
/fs-fix |
Update proposed change-set test in AGENTS.md Rule 6 and review-pr skill: distinguish working-tree change-set show from show --at, require path absence from default branch in addition to proposed for show --at, and require checkout or worktree of PR head before working-tree show and check commands. Wrap AGENTS.md references in backticks across review-pr skill. Refresh skillsaw baseline. Note: AGENTS.md is a protected governance path requiring human reviewer approval merge gate. Pre-commit hooks were run via python3 scripts/lint.py due to pre-commit TLS certificate verification failure in sandbox. Addresses #246
🔧 Fix agent — iteration 6 (human-triggered)Addressed review findings by distinguishing working-tree change-set show from show --at, requiring default-branch path absence in addition to proposed for show --at, requiring a checkout or worktree of the PR head before working-tree show and check commands, backtick-quoting AGENTS.md references in review-pr skill, and refreshing skillsaw baseline. Fixed (3):
Disagreed (1):
Tests: passed CI inspections (7):
Decision points
Next steps:
|
|
🤖 Finished Fix · ✅ Success · Started 8:30 PM UTC · Completed 8:48 PM UTC Commit: Runtime: pi · Model: google-vertex/gemini-3.8-flash → gemini-3.8-flash · Effort: high · Cost: $0.86 |
|
🤖 Finished Review · ✅ Success · Started 8:50 PM UTC · Completed 9:11 PM UTC Commit: Runtime: pi · Model: google-vertex/gemini-3.8-flash → gemini-3.8-flash · Effort: high · Cost: $3.26 |
|
🤖 Finished Fix · ❌ Failure (running pre-script: exit status 1: Fix iteration 7 exceeds bot cap of 5. Escalating to human. The review→fix loop has run 7 times without converging. A human can still direct the agent with /fs-fix (u…) · Started 9:12 PM UTC · Completed 9:12 PM UTC Commit: Effort: high |
|
/fs-fix |
Bind ears-manager check to the PR head in AGENTS.md Rule 6: require a checkout or worktree of the recorded PR head before check, and state that a working-tree check on the base branch is not evidence. Refresh skillsaw baseline. Note: AGENTS.md is a protected governance path requiring human reviewer approval merge gate. Pre-commit hooks were run via python3 scripts/lint.py due to pre-commit TLS certificate verification failure in sandbox. Addresses #246
🔧 Fix agent — iteration 7 (human-triggered)Addressed review feedback on AGENTS.md Rule 6 by binding ears-manager check to the recorded PR head via a required checkout or worktree, and noted that a working-tree check on the base branch is not evidence. Refreshed skillsaw baseline. Fixed (1):
Disagreed (1):
Tests: passed CI inspections (5):
Conflict update: skipped; strategy Decision points
Next steps:
|
|
🤖 Finished Fix · ✅ Success · Started 1:41 PM UTC · Completed 1:55 PM UTC Commit: Runtime: pi · Model: google-vertex/gemini-3.8-flash → gemini-3.8-flash · Effort: high · Cost: $0.83 |
| - `docs/vision.md` — project Vision (purpose, users, outcomes). | ||
| - `docs/architecture.md` — Architecture artifact (external | ||
| interfaces, persistent state, environmental constraints). | ||
| - `docs/vision.md` — registered Vision artifact (purpose, users, |
There was a problem hiding this comment.
[medium] protected-path
This PR modifies protected governance file AGENTS.md. While the PR links to issue #244 and provides context for the changes, human approval is always required for protected-path changes, regardless of context.
Suggested fix: Request human review and approval from repository maintainers for AGENTS.md modifications.
|
🤖 Finished Review · ✅ Success · Started 1:56 PM UTC · Completed 2:30 PM UTC Commit: Runtime: pi · Model: google-vertex/gemini-3.8-flash → gemini-3.8-flash · Effort: high · Cost: $1.30 |
|
🤖 Finished Fix · ❌ Failure (running pre-script: exit status 1: Fix iteration 8 exceeds bot cap of 5. Escalating to human. The review→fix loop has run 8 times without converging. A human can still direct the agent with /fs-fix (u…) · Started 2:31 PM UTC · Completed 2:32 PM UTC Commit: Effort: high |
Workflow Retrospective: PR #246 (
|
|
🤖 Finished Retro · ✅ Success · Started 3:07 PM UTC · Completed 3:30 PM UTC Commit: Runtime: pi · Model: google-vertex/gemini-3.8-flash → gemini-3.8-flash · Effort: high · Cost: $2.89 |
Summary
AGENTS.md told agents to keep every
docs/file in sync, includingdocs/architecture.mdanddocs/vision.md. Those two files are registered specification artifacts: their registry digests are recorded in.protobot/project.yaml, and a hand edit failsears-manager checkwithartifact.digest_mismatch. That gap is what forced the #238 implementation to revertdocs/architecture.mdand leave it stale.This change:
docs/vision.mdanddocs/architecture.mdas registered specification artifacts in the Specification document hierarchy..protobot/project.yamlby hand; apply updates exclusively viaears-manager artifact putwithin an active change set, after formatters and linters, and verify withears-manager check.artifact_operations, refuse hand edits, requireears-manager checkwithoutartifact.digest_mismatch, and do not treat a registered specification artifact edited by hand as the required fix for staleness..agents/skills/review-pr/SKILL.md.The review-pr skill change implements Rule 6. Issue #244 documents the incorrect prior behavior (hand edits of registered specification artifacts, then reverting them to keep the store digest valid) and the impact on CI and review false positives. That issue is the skill-rule justification; no separate issue was needed.
.skillsaw-baseline.jsonis refreshed only for the new AGENTS.md path-reference and section-length info findings. CLAUDE.md is a symlink to AGENTS.md and inherits the hierarchy and rule text.Testing
python3 scripts/lint.py --files AGENTS.md .agents/skills/review-pr/SKILL.md .skillsaw-baseline.jsonpython3 scripts/check_spec_hierarchy.pybash tests/lint/test_violations.shgo run ./cmd/ears-manager checkfromears-manager/(specification store still valid)Notes
pre-commit runcould not fetch hook repositories (TLS certificate verification failed). Equivalent hooks were run throughpython3 scripts/lint.py.Closes #244
Post-script verification
agent/244-govern-registered-artifacts)cfdbd4a2535ca622ebee24b537ddb017b7c6979a..HEAD)