workplan: conform to the status-projects tracker contract (0.8.0), and catch the docs up - #62
Merged
Merged
Conversation
Run 2 (QuantEcon/meta, 2026-08-25) merged as a record and nothing downstream moved, so CATALOG, using-skills and the audit tutorial still said the method had been run once and that resumability was untested — the opposite of what run 2 established. - CATALOG, using-skills: two runs, what run 2 settled (resume at the predicted issue, read-only measured by fingerprint) and what it did not (#57 closed-pass granularity, the unexercised truncation guard, #61's working-directory gap). - The audit tutorial no longer tells you to install a plugin that has not existed since 0.7.0; it carries run 2's cost data point, tells you to write your resume prediction down first, to fingerprint rather than eyeball the read-only boundary, and to check git check-ignore before taking the .audit/ fallback — run 2 left token material untracked in a public checkout that way. - developing-skills: the layout tree advertised a plugin README qe does not have and hid the family subdivision under scripts/ and references/; the tags and PR-flow sections still spoke of three plugins. - CATALOG lists /qe:workplan for the verbs that have actually run. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The projects dashboard has parsed every registered project tracker nightly since 2026-08-24, so a tracker these skills produce now has a machine reader as well as the next session. The rules live once, upstream, in C2 (status-projects docs/contracts/tracker.md); the skills link to it rather than restate it. See #49 item 2. - The revision stamp becomes "## Where we stand (verified YYYY-MM-DD)". Both skills stamped before this; they stamped in prose the collector cannot read, so a plan revised faithfully every session still published as unstamped. create writes it, resume/update re-date it, read reports its age, and anchor-and-sweep reads the date from the stamp alone. - Long-lived trackers carry the native Project issue type, replacing the "stay untyped pending the QEP-2 field report" bullet — that field report is qeps#11 and its answer was not a label, so QEP-2's set is untouched. Period plans stay untyped: a session's working document is not a project. - workplan-project states why the work goes in native sub-issues: checkbox progress publishes as null, not as a percentage. - Both skills now say a conformant tracker is still invisible until it is registered, and offer to draft the projects.yml row. Opening that PR stays the user's move; automating it is #49 item 1 and is not in this release. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Aligns the qe plugin’s work-plan skills and repo documentation with (a) the upstream status-projects tracker contract introduced on 2026-08-24 and (b) findings/validation outcomes from audit run 2, while releasing these updates as qe v0.8.0.
Changes:
- Updates
workplan/workplan-projectguidance to conform with the status-projects tracker contract (stamp heading form, Project issue type, sub-issues-as-progress, registration note). - Refreshes repo-level docs (CATALOG, using-skills, audit tutorial, developing-skills, AGENTS) to reflect audit run 2 and post-0.7.0 consolidation reality.
- Bumps
qeplugin version to 0.8.0 and records the release in the plugin changelog.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| qe/skills/workplan/SKILL.md | Adds tracker-contract guidance and updates lifecycle verb expectations/behavior descriptions around the status stamp and Project typing. |
| qe/skills/workplan-project/SKILL.md | Updates project work-package drafting/filing instructions to match tracker contract expectations (stamp heading, sub-issues, Project type, registration note). |
| qe/CHANGELOG.md | Introduces the 0.8.0 release entry describing contract-alignment changes and known gaps. |
| qe/.claude-plugin/plugin.json | Bumps the plugin version to 0.8.0. |
| .claude-plugin/marketplace.json | Updates marketplace metadata to reference qe 0.8.0. |
| docs/using-skills.md | Updates skill status table to reflect observed validations and audit run 2 outcomes. |
| docs/tutorial-run-an-audit.md | Updates the audit tutorial to incorporate run 2 learnings (resume validation, read-only measurement, working directory hazards). |
| docs/developing-skills.md | Refreshes repo layout and tagging guidance for the single-plugin reality since 0.7.0. |
| CATALOG.md | Updates catalog entries for workplan and audit families to reflect validation state and run 2 outcomes. |
| AGENTS.md | Updates canonical-doc mapping and tracking-issue descriptions (including reviews/ as validation run records). |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
…erences Three comments on #62, all valid. - workplan/SKILL.md re-specified C2's parser grammar (H2/H3, allowed parenthetical contents, trailing whitespace) under a heading that says the contract is stated once upstream. Trimmed to the two example forms plus the one authoring rule, with C2 named as the authority where they differ. The example stays inline deliberately: status-projects is private, so a bare pointer would leave a consumer unable to write the heading at all. The section now says so, and notes it re-points at the public QEP when R6's lands. - workplan-project/SKILL.md said "see the note below" for a bullet titled "The tracker contract"; named it. - The audit tutorial told you to check git check-ignore and read its output. Verified: on a non-ignored path both the plain and -v forms print nothing and exit 1, so -v alone does not disambiguate — only the exit code does. Now uses -v (matching step 1's existing command) and reads the exit code. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
"The interface half becomes a public QEP" reads as though part of C2 is leaving status-projects. It is not: status-projects design.md R6 has the QEP "written from the collector's evidence" and "that C2 cites", so the QEP sits above C2 and C2 keeps everything it has. The phrasing misled a reader in review, which is evidence enough to change it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two halves, both catching this repo up to things that landed elsewhere and never propagated here.
1. The work-plan skills meet the tracker contract (
qe0.8.0)Since 2026-08-24 the projects dashboard parses every registered project tracker nightly and publishes a per-tracker compliance block. That makes the
workplan-*family a producer for a machine consumer, and the two ends were not pointing at the same thing. The rules are stated once, upstream, indocs/contracts/tracker.md(C2) — the skills link to it rather than restate it, per the single-source-of-truth principle. This is item 2 of #49.The stamp was the real defect. Both skills stamped their revisions already, carefully, with time and timezone — but in prose the collector cannot read. The contract wants an H2/H3 whose text is exactly
Where we stand, withverifiedplus a mandatory ISO date in the parentheses and nothing else. So a plan revised faithfully every session still published as unstamped.createnow writes that heading,resumeandupdatere-date it,readreports its age and says when it is absent or malformed, and anchor-and-sweep reads the date from the stamp alone — averifiedin a table cell or a checklist item is not a stamp, and taking one as the anchor silently mis-scopes the sweep."Plan issues stay untyped" is retired, and not because the rule was wrong. It was waiting on the QEP-2 field report at QuantEcon/qeps#11, and that field report's answer turned out not to be a label at all:
Projectis a native org-level issue type, enabled 2026-08-24, so it filters astype:Projectorg-wide and leaves QEP-2's label set untouched. Long-lived trackers now carry it; period plans stay untyped, because a session's working document is not a project. That genre split is the one design call in this PR worth arguing with — the alternative is typing every weekly planProjectand putting them all on the dashboard.Registration is named as the missing step. A conformant tracker is still invisible until a row exists in
projects.yml. Both skills now say so and offer to draft the row; opening the pull request againstQuantEcon/status-projectsstays the user's move. Automating that end to end is #49 item 1 and is deliberately not here.Not in this release, and tracked rather than hand-waved: the
qe:tracker-conformskill that C2 §5 already names as the fix half of its compliance block (#49 item 3), and thewp{issue#}-stage{n}milestone convention (#55).2. Repo-level docs catch up to audit run 2
The run-2 record merged in #56 and nothing downstream moved. CATALOG,
using-skillsand the audit tutorial all still said the method had been run once and that resumability was untested — the opposite of what run 2 established. They now carry two runs, what run 2 settled (resume at the predicted issue with no re-walk or duplicate; read-only measured by a before/after tracker fingerprint rather than asserted) and what it did not (#57's closed-pass granularity, the unexercised truncation guard, #61's working-directory gap).The audit tutorial also stopped telling you to install a plugin that has not existed since 0.7.0. It now carries run 2's cost data point, tells you to write your resume prediction down before resuming, to fingerprint rather than eyeball the read-only boundary, and to check
git check-ignorebefore taking the.audit/fallback — that fallback is how run 2 left 2.4 MB of findings, including token material, untracked in a public checkout.developing-skillshad leftover multi-plugin language: a layout tree advertising a<plugin>/README.mdthatqedoes not have and hiding the family subdivision underscripts/andreferences/, plus "three independently-versioned plugins" in the tags section.Checks
python scripts/validate.pyandpython scripts/check-version-bump.pyboth pass; the guard reportsqe — 0.7.0 → 0.8.0. Every relative link resolves.🤖 Generated with Claude Code