You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@magpie.apache.org by "justinmclean (via GitHub)" <gi...@apache.org> on 2026/07/27 02:35:06 UTC

[PR] docs(spec-loop): add spec-gap staleness verification spec [magpie]

justinmclean opened a new pull request, #926:
URL: https://github.com/apache/magpie/pull/926

   ## Summary
   
   Adds `tools/spec-loop/specs/spec-gap-staleness.md`, a `proposed` spec for
   stopping a `## Known gaps` bullet from outliving the gap it describes.
   
   Spec-only. Nothing is implemented by this PR.
   
   ### Why now
   
   Nine Known-gap bullets across eight specs currently describe capabilities
   that have already shipped. Examples verified against `main`:
   
   - `adapters.md` says adapter authoring smoke validation is missing;
     `validate_adapter_authoring` is called at `__init__.py:3710`.
   - `privacy-llm-gate.md` says branch-name confidentiality validation is
     missing; `validate_branch_name_confidentiality` is called twice.
   - `issue-management-family.md` and `reviewer-routing.md` both say the
     `reviewer-routing` row is missing from `docs/modes.md`; it is at
     `docs/modes.md:85`.
   - `release-management-lifecycle.md` says the audit record schema is
     prose-only; `skills/release-audit-report/audit-record-schema.md` exists.
   
   This matters beyond tidiness: the plan beat reads Known gaps to select
   work, so a stale bullet sends the loop at finished work. There is also a
   straight contradiction between `triage-mode.md` (repo-health is "a
   five-skill family") and `repo-health-family.md` ("six skills deep").
   
   ### What the spec proposes
   
   1. **An evidence rule on the plan and update beats.** A Known-gap bullet
      may only become a work item if the beat cites a call site, current
      file content, or a counted value. The presence of a name is
      explicitly not admissible, since a function defined but never called
      satisfies a name match while the gap stays open.
   2. **Optional `gap-closes-when:` predicates** on gap bullets, with a
      three-verb vocabulary (`symbol-called`, `path-exists`,
      `skill-count`) that covers all nine observed cases. A satisfied or
      malformed predicate is HARD; an unannotated bullet is SOFT, so
      nothing breaks on the day this lands.
   3. **`validate_cross_spec_counts`**, HARD. Counted claims checked
      against live `family:` frontmatter, with cross-spec disagreement a
      violation regardless of which side is right.
   
   Bullets whose gap is inherently narrative declare
   `gap-closes-when: none (narrative)`. That is the correct annotation for
   the eleven "experimental, no adopter pilot has run" bullets, whose truth
   depends on facts outside the repository and which should never be
   machine-checked.
   
   ### Reviewer questions
   
   - `validate_cross_spec_counts` is proposed HARD and the unannotated-bullet
     advisory SOFT. SOFT is what allowed nine bullets to accumulate, so
     there is a case for making it HARD, at the cost of a blocking backfill
     across all 25 specs.
   
   Generated-by: Claude (claude-opus-5)
   
   ## Type of change
   
   - [ ] Skill change (`.claude/skills/<name>/`) — eval fixtures updated below
   - [ ] Tool / bridge contract (`tools/<system>/*.md`)
   - [X] Python package (`tools/*/` with `pyproject.toml`)
   - [ ] Groovy reference impl
   - [ ] Cross-cutting (RFC, AGENTS.md, sandbox, privacy-LLM)
   - [ ] Documentation (`docs/`, `README.md`, `CONTRIBUTING.md`)
   - [ ] Project template (`projects/_template/`)
   - [ ] CI / dev loop (`prek`, workflows, validators)
   - [ ] Other:
   
   ## Test plan
   
   - [X] `prek run --all-files` passes
   - [X] For Python packages touched: `uv run pytest` / `ruff check` / `mypy` passes
   - [ ] For Groovy bridges touched: command-line invocation tested end-to-end
   - [ ] For skill changes: eval suite passes for the affected skill
         (`PYTHONPATH=tools/skill-evals/src python3 -m skill_evals.runner tools/skill-evals/evals/<skill>/`)
   - [ ] For skill *behaviour* changes: a new or updated eval fixture is included in this PR
         (a regression test for the bug fixed / the behaviour added — see CONTRIBUTING.md)
   - [ ] Other:
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@magpie.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] docs(spec-loop): add spec-gap staleness verification spec [magpie]

Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk merged PR #926:
URL: https://github.com/apache/magpie/pull/926


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@magpie.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org