remaining-work
Skill3 starsChanged 27 days agoMITView on GitHub
Audit what the code delivers against the specs, then write the remaining-work backlog and the completion plan (CP view). Use when asked how far along the project is, what is left, or for a roadmap.
In this repository25 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- adrSkill
- api-contract-syncSkill
- architecture-advisorSkill
- ci-triageSkill
- compassSkill
- debugSkill
- delivery-digestSkill
- design-taste-skillsSkill
- grillSkill
- harness-improveSkill
- harness-loopSkill
- impact-analysisSkill
- native-mobile-skillsSkill
- plugin-authorSkill
- pr-flowSkill
- project-memorySkill
- reviewSkill
- slide-deckSkill
- spec-flowSkill
- task-flowSkill
- ui-conformanceSkill
- working-style-skillsSkill
The file
We split this skill into the rules it gives an agent
12 rules. About 0 are common, 7 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 34
Run a second pass that tries to refute each done.
- Distinctive: line 52
Before a fan-out, state the scope and the cost in one line.
- Distinctive: line 53
If nothing moved, say so and stop.
- Very specific: line 59
Write {{PLANNING_DIR}}/completion-plan.md from the gap and partial rows.
- Distinctive: line 61
Read the repository rules first.
- Very specific: line 62
Write one item for each coherent unit of work.
- Very specific: line 66
Use task-flow to create tickets after the user says yes.
- Distinctive: line 73
Put the shared foundations first.
- Very specific: line 75
Use task-flow, section "Assign by profile", to write the assignments.
- Distinctive: line 79
Do this for one item, when the user asks for a build-ready plan.
- Distinctive: line 81
Read the current code first.
- Distinctive: line 82
Write these parts: objective, files, schema or migration, contracts, ordered logic and edge cases.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
remaining-work
Measure what the code delivers, not what a status document reports. The order is audit, plan, split, detail.
Files
| File | Content |
{{PLANNING_DIR}}/audit/rows.jsonl | One JSON row for each requirement |
{{PLANNING_DIR}}/audit/state.json | The commit and the date of the last run |
{{PLANNING_DIR}}/completion-plan.md | The CP view |
Row keys: id, status, percent, evidence (a file:line), missing, date.
status is done, partial, skeleton, gap, gated or not_audited.
The rows are the deliverable. Every percentage and every item comes from them. The report is a view of the rows.
1. Audit
- Extract the requirements from
{{OPENSPEC_DIR}}with a script. Compare the total with the last count. A different total means that the extractor broke. - Map the code: modules, routes, jobs, tables and screens. Keep backend and frontend apart.
- Rate each requirement. It is
doneonly when the code is wired and tested. - A status document, a task checkbox, a type or a schema-only table is not proof. An API with no screen is not delivered.
gapmeans unbuilt.gatedmeans blocked on a decision or a credential.- Run a second pass that tries to refute each
done. It may lower a status. It may not raise one. - A claim with no
file:linebecomesgap. Open each citedfile:lineafter the run. - An agent that returns no row leaves
not_audited. Never average over missing rows.
Extraction traps:
- A duplicate id in one file is a redefinition. Keep the first position. The later text wins.
- Match every id prefix family. Match lower-case suffixes such as
-004b. - Take every table row whose first cell is a valid id. This includes appendices.
- Exclude a requirement only on a structured marker, never on prose.
2. Refresh
Audit again only what moved. Carry every other row forward with its original date.
- These changes put a requirement back in scope: its text changed, it is new, or a file that its evidence cites changed.
- New code that no row cites needs a discovery pass. Group it by directory. Ask whether it implements a
gaprequirement. - Name the pivot files, such as a root module or a shared schema. They inflate the scope.
- Before a fan-out, state the scope and the cost in one line. Wait for a yes.
- If nothing moved, say so and stop.
- Report the movement: rows audited again, advances, regressions, the old and new percent. Separate fresh rows from carried rows.
- Say that this is static analysis. Neither the app nor the tests ran.
3. Completion plan
Write {{PLANNING_DIR}}/completion-plan.md from the gap and partial rows.
- Read the repository rules first. Each item cites the real rules that apply.
- Write one item for each coherent unit of work. Use the id
CP-NNN. - Each item has these fields: title, requirement ids, tier, what and why, plan, rules, ticket or
NO TICKET, dependencies and gate. The plan names real files, endpoints, tables and jobs. - Order the items by dependency. Put foundations first, then the tiers.
- End with two lists: the tracker delta (items with no ticket) and the gate register (item, what unblocks it, who approves).
- Use
task-flowto create tickets after the user says yes. - For a large scope, run one sub-agent for each domain. Merge the shared items into one foundation section.
4. Split
- Give each owner a self-contained set of directories. One writer for each file.
- Name each seam. The owner exposes a service and a contract. The consumer wires on top.
- Put the shared foundations first.
- Flag the largest overlap risk and say how to contain it.
- Use
task-flow, section "Assign by profile", to write the assignments.
5. Detail
Do this for one item, when the user asks for a build-ready plan.
- Read the current code first. Every path and signature must be real.
- Write these parts: objective, files, schema or migration, contracts, ordered logic and edge cases. Then add resilience and security, jobs, env vars, tests, ticket and dependencies.
- For a missing credential or decision, build it now. Use these four parts:
- A mock provider that is on by default.
- Env vars on every surface.
- A typed error when the secret is absent.
- One switch from mock to live.
Do not commit.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

