docs(work): close dag-and-readiness-v1 epic
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"updated_at": "2026-05-13T05:59:55.392Z",
|
"updated_at": "2026-05-13T06:06:23.176Z",
|
||||||
"epics": {
|
"epics": {
|
||||||
"agent-workflow-docs-v1": {
|
"agent-workflow-docs-v1": {
|
||||||
"status": "done",
|
"status": "done",
|
||||||
@@ -9,7 +9,9 @@
|
|||||||
"status": "done",
|
"status": "done",
|
||||||
"title": "Surface conformance system across top-level docs",
|
"title": "Surface conformance system across top-level docs",
|
||||||
"ac_total": 8,
|
"ac_total": 8,
|
||||||
"ac_completed": 8
|
"ac_completed": 8,
|
||||||
|
"depends_on": [],
|
||||||
|
"blocks": []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -21,13 +23,21 @@
|
|||||||
"status": "done",
|
"status": "done",
|
||||||
"title": "Replace regex manifest source parser with AST",
|
"title": "Replace regex manifest source parser with AST",
|
||||||
"ac_total": 5,
|
"ac_total": 5,
|
||||||
"ac_completed": 5
|
"ac_completed": 5,
|
||||||
|
"depends_on": [],
|
||||||
|
"blocks": [
|
||||||
|
"02-dev-seed-assertion"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"02-dev-seed-assertion": {
|
"02-dev-seed-assertion": {
|
||||||
"status": "done",
|
"status": "done",
|
||||||
"title": "Extend assertFeatureConformance to all bind-dev-seed paths",
|
"title": "Extend assertFeatureConformance to all bind-dev-seed paths",
|
||||||
"ac_total": 6,
|
"ac_total": 6,
|
||||||
"ac_completed": 6
|
"ac_completed": 6,
|
||||||
|
"depends_on": [
|
||||||
|
"01-ast-manifest-source"
|
||||||
|
],
|
||||||
|
"blocks": []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -39,67 +49,119 @@
|
|||||||
"status": "done",
|
"status": "done",
|
||||||
"title": "defineFeature helper + Instrumented/Captured/Audited brands",
|
"title": "defineFeature helper + Instrumented/Captured/Audited brands",
|
||||||
"ac_total": 9,
|
"ac_total": 9,
|
||||||
"ac_completed": 9
|
"ac_completed": 9,
|
||||||
|
"depends_on": [],
|
||||||
|
"blocks": [
|
||||||
|
"02-boot-assertions"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"02-boot-assertions": {
|
"02-boot-assertions": {
|
||||||
"status": "done",
|
"status": "done",
|
||||||
"title": "assertFeatureConformance + boot wiring",
|
"title": "assertFeatureConformance + boot wiring",
|
||||||
"ac_total": 11,
|
"ac_total": 11,
|
||||||
"ac_completed": 11
|
"ac_completed": 11,
|
||||||
|
"depends_on": [
|
||||||
|
"01-define-feature-helper"
|
||||||
|
],
|
||||||
|
"blocks": [
|
||||||
|
"03-eslint-rules"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"03-a-structural-eslint-rules": {
|
"03-a-structural-eslint-rules": {
|
||||||
"status": "done",
|
"status": "done",
|
||||||
"title": "Structural ESLint rules (feature-must-have-manifest, usecase-must-have-test-file, required-cores-installed)",
|
"title": "Structural ESLint rules (feature-must-have-manifest, usecase-must-have-test-file, required-cores-installed)",
|
||||||
"ac_total": 10,
|
"ac_total": 10,
|
||||||
"ac_completed": 10
|
"ac_completed": 10,
|
||||||
|
"depends_on": [
|
||||||
|
"02-boot-assertions"
|
||||||
|
],
|
||||||
|
"blocks": [
|
||||||
|
"03-b-ast-aware-eslint-rules"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"03-b-ast-eslint-rules": {
|
"03-b-ast-eslint-rules": {
|
||||||
"status": "done",
|
"status": "done",
|
||||||
"title": "AST-aware ESLint rules (no-undeclared-event-publish, no-undeclared-audit)",
|
"title": "AST-aware ESLint rules (no-undeclared-event-publish, no-undeclared-audit)",
|
||||||
"ac_total": 8,
|
"ac_total": 8,
|
||||||
"ac_completed": 8
|
"ac_completed": 8,
|
||||||
|
"depends_on": [
|
||||||
|
"03-a-structural-eslint-rules"
|
||||||
|
],
|
||||||
|
"blocks": [
|
||||||
|
"04-ci-drift-gate"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"04-ci-drift-gate": {
|
"04-ci-drift-gate": {
|
||||||
"status": "done",
|
"status": "done",
|
||||||
"title": "CI drift gate — pnpm conformance with cross-feature event closure",
|
"title": "CI drift gate — pnpm conformance with cross-feature event closure",
|
||||||
"ac_total": 6,
|
"ac_total": 6,
|
||||||
"ac_completed": 6
|
"ac_completed": 6,
|
||||||
|
"depends_on": [
|
||||||
|
"03-b-ast-eslint-rules"
|
||||||
|
],
|
||||||
|
"blocks": [
|
||||||
|
"05-generator-updates"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"05-generator-updates": {
|
"05-generator-updates": {
|
||||||
"status": "done",
|
"status": "done",
|
||||||
"title": "Generator updates — emit feature.manifest.ts + self-asserting bind-production",
|
"title": "Generator updates — emit feature.manifest.ts + self-asserting bind-production",
|
||||||
"ac_total": 7,
|
"ac_total": 7,
|
||||||
"ac_completed": 7
|
"ac_completed": 7,
|
||||||
|
"depends_on": [
|
||||||
|
"04-ci-drift-gate"
|
||||||
|
],
|
||||||
|
"blocks": [
|
||||||
|
"06-feature-migrations"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"06-feature-migrations": {
|
"06-feature-migrations": {
|
||||||
"status": "done",
|
"status": "done",
|
||||||
"title": "Migrate blog/media/navigation/marketing-pages to conformance pattern",
|
"title": "Migrate blog/media/navigation/marketing-pages to conformance pattern",
|
||||||
"ac_total": 7,
|
"ac_total": 7,
|
||||||
"ac_completed": 7
|
"ac_completed": 7,
|
||||||
|
"depends_on": [
|
||||||
|
"05-generator-updates"
|
||||||
|
],
|
||||||
|
"blocks": []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dag-and-readiness-v1": {
|
"dag-and-readiness-v1": {
|
||||||
"status": "in-progress",
|
"status": "done",
|
||||||
"title": "DAG + readiness — depends-on / blocks parsing",
|
"title": "DAG + readiness — depends-on / blocks parsing",
|
||||||
"stories": {
|
"stories": {
|
||||||
"01-extended-state": {
|
"01-extended-state": {
|
||||||
"status": "in-progress",
|
"status": "done",
|
||||||
"title": "Frontmatter array parsing + extended state shape",
|
"title": "Frontmatter array parsing + extended state shape",
|
||||||
"ac_total": 4,
|
"ac_total": 4,
|
||||||
"ac_completed": 0
|
"ac_completed": 4,
|
||||||
|
"depends_on": [],
|
||||||
|
"blocks": [
|
||||||
|
"02-dag-computation"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"02-dag-computation": {
|
"02-dag-computation": {
|
||||||
"status": "todo",
|
"status": "done",
|
||||||
"title": "DAG computation — ready + blocked story sets",
|
"title": "DAG computation — ready + blocked story sets",
|
||||||
"ac_total": 3,
|
"ac_total": 3,
|
||||||
"ac_completed": 0
|
"ac_completed": 3,
|
||||||
|
"depends_on": [
|
||||||
|
"01-extended-state"
|
||||||
|
],
|
||||||
|
"blocks": [
|
||||||
|
"03-cli-subcommands"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"03-cli-subcommands": {
|
"03-cli-subcommands": {
|
||||||
"status": "todo",
|
"status": "done",
|
||||||
"title": "CLI ready / blocked subcommands",
|
"title": "CLI ready / blocked subcommands",
|
||||||
"ac_total": 5,
|
"ac_total": 5,
|
||||||
"ac_completed": 0
|
"ac_completed": 5,
|
||||||
|
"depends_on": [
|
||||||
|
"02-dag-computation"
|
||||||
|
],
|
||||||
|
"blocks": []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -111,7 +173,9 @@
|
|||||||
"status": "done",
|
"status": "done",
|
||||||
"title": "Three structural frontend conformance ESLint rules",
|
"title": "Three structural frontend conformance ESLint rules",
|
||||||
"ac_total": 6,
|
"ac_total": 6,
|
||||||
"ac_completed": 6
|
"ac_completed": 6,
|
||||||
|
"depends_on": [],
|
||||||
|
"blocks": []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -123,19 +187,33 @@
|
|||||||
"status": "done",
|
"status": "done",
|
||||||
"title": "Install husky + lint-staged",
|
"title": "Install husky + lint-staged",
|
||||||
"ac_total": 3,
|
"ac_total": 3,
|
||||||
"ac_completed": 3
|
"ac_completed": 3,
|
||||||
|
"depends_on": [],
|
||||||
|
"blocks": [
|
||||||
|
"02-pre-commit-hook"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"02-pre-commit-hook": {
|
"02-pre-commit-hook": {
|
||||||
"status": "done",
|
"status": "done",
|
||||||
"title": "Pre-commit hook script",
|
"title": "Pre-commit hook script",
|
||||||
"ac_total": 2,
|
"ac_total": 2,
|
||||||
"ac_completed": 2
|
"ac_completed": 2,
|
||||||
|
"depends_on": [
|
||||||
|
"01-husky-install"
|
||||||
|
],
|
||||||
|
"blocks": [
|
||||||
|
"03-state-sync-guard"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"03-state-sync-guard": {
|
"03-state-sync-guard": {
|
||||||
"status": "done",
|
"status": "done",
|
||||||
"title": "State-sync guard + tests",
|
"title": "State-sync guard + tests",
|
||||||
"ac_total": 4,
|
"ac_total": 4,
|
||||||
"ac_completed": 4
|
"ac_completed": 4,
|
||||||
|
"depends_on": [
|
||||||
|
"02-pre-commit-hook"
|
||||||
|
],
|
||||||
|
"blocks": []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -147,9 +225,13 @@
|
|||||||
"status": "done",
|
"status": "done",
|
||||||
"title": "State builder + pnpm work CLI",
|
"title": "State builder + pnpm work CLI",
|
||||||
"ac_total": 5,
|
"ac_total": 5,
|
||||||
"ac_completed": 5
|
"ac_completed": 5,
|
||||||
|
"depends_on": [],
|
||||||
|
"blocks": []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"ready": [],
|
||||||
|
"blocked": []
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ id: 01-extended-state
|
|||||||
epic: dag-and-readiness-v1
|
epic: dag-and-readiness-v1
|
||||||
title: Frontmatter array parsing + extended state shape
|
title: Frontmatter array parsing + extended state shape
|
||||||
type: technical-story
|
type: technical-story
|
||||||
status: in-progress
|
status: done
|
||||||
feature: scripts
|
feature: scripts
|
||||||
depends-on: []
|
depends-on: []
|
||||||
blocks: [02-dag-computation]
|
blocks: [02-dag-computation]
|
||||||
@@ -11,7 +11,7 @@ blocks: [02-dag-computation]
|
|||||||
|
|
||||||
## Tasks
|
## Tasks
|
||||||
|
|
||||||
- [ ] Story scaffold
|
- [x] Story scaffold
|
||||||
- [ ] Extend parseFrontmatter to parse array values like `depends-on: [a, b]`
|
- [x] Extend parseFrontmatter to parse array values like `depends-on: [a, b]`
|
||||||
- [ ] Extend buildState to include depends_on + blocks per story entry
|
- [x] Extend buildState to include depends_on + blocks per story entry
|
||||||
- [ ] Update existing tests; add new array-parsing tests
|
- [x] Update existing tests; add new array-parsing tests
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ id: 02-dag-computation
|
|||||||
epic: dag-and-readiness-v1
|
epic: dag-and-readiness-v1
|
||||||
title: DAG computation — ready + blocked story sets
|
title: DAG computation — ready + blocked story sets
|
||||||
type: technical-story
|
type: technical-story
|
||||||
status: todo
|
status: done
|
||||||
feature: scripts
|
feature: scripts
|
||||||
depends-on: [01-extended-state]
|
depends-on: [01-extended-state]
|
||||||
blocks: [03-cli-subcommands]
|
blocks: [03-cli-subcommands]
|
||||||
@@ -11,6 +11,6 @@ blocks: [03-cli-subcommands]
|
|||||||
|
|
||||||
## Tasks
|
## Tasks
|
||||||
|
|
||||||
- [ ] computeReadyBlocked(state) — pure function
|
- [x] computeReadyBlocked(state) — pure function
|
||||||
- [ ] Tests
|
- [x] Tests
|
||||||
- [ ] Wire into buildState output
|
- [x] Wire into buildState output
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ id: 03-cli-subcommands
|
|||||||
epic: dag-and-readiness-v1
|
epic: dag-and-readiness-v1
|
||||||
title: CLI ready / blocked subcommands
|
title: CLI ready / blocked subcommands
|
||||||
type: technical-story
|
type: technical-story
|
||||||
status: todo
|
status: done
|
||||||
feature: scripts
|
feature: scripts
|
||||||
depends-on: [02-dag-computation]
|
depends-on: [02-dag-computation]
|
||||||
blocks: []
|
blocks: []
|
||||||
@@ -11,8 +11,8 @@ blocks: []
|
|||||||
|
|
||||||
## Tasks
|
## Tasks
|
||||||
|
|
||||||
- [ ] `pnpm work ready` — prints ready stories
|
- [x] `pnpm work ready` — prints ready stories
|
||||||
- [ ] `pnpm work blocked` — prints blocked stories with waiting_on
|
- [x] `pnpm work blocked` — prints blocked stories with waiting_on
|
||||||
- [ ] Update `pnpm work next` to use the ready set
|
- [x] Update `pnpm work next` to use the ready set
|
||||||
- [ ] CLI smoke tests
|
- [x] CLI smoke tests
|
||||||
- [ ] Final verification + closeout
|
- [x] Final verification + closeout
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ id: dag-and-readiness-v1
|
|||||||
prd: null
|
prd: null
|
||||||
title: DAG + readiness — depends-on / blocks parsing
|
title: DAG + readiness — depends-on / blocks parsing
|
||||||
type: epic
|
type: epic
|
||||||
status: in-progress
|
status: done
|
||||||
features: [scripts]
|
features: [scripts]
|
||||||
created: 2026-05-13
|
created: 2026-05-13
|
||||||
---
|
---
|
||||||
@@ -16,6 +16,6 @@ from the depends-on graph instead of just the first non-done story.
|
|||||||
|
|
||||||
## Stories
|
## Stories
|
||||||
|
|
||||||
- [ ] [01 — Frontmatter array parsing + extended state shape](01-extended-state/_story.md)
|
- [x] [01 — Frontmatter array parsing + extended state shape](01-extended-state/_story.md)
|
||||||
- [ ] [02 — DAG computation: ready + blocked](02-dag-computation/_story.md)
|
- [x] [02 — DAG computation: ready + blocked](02-dag-computation/_story.md)
|
||||||
- [ ] [03 — CLI ready / blocked subcommands](03-cli-subcommands/_story.md)
|
- [x] [03 — CLI ready / blocked subcommands](03-cli-subcommands/_story.md)
|
||||||
|
|||||||
Reference in New Issue
Block a user