Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
82c2e7a
feat: criteria grounding in approved requirements and first criterion…
lunelson Apr 10, 2026
85aa381
docs: mark slice 10.1 done, add I97 criteria-review grounding invariant
lunelson Apr 10, 2026
2dc6ac0
feat: explicit criterion review state and minimal criteria closeability
lunelson Apr 10, 2026
4f6242e
docs: traceability for slice 10.2 — criterion review state and closea…
lunelson Apr 10, 2026
ac1dc9d
feat: criteria closure and completed workflow state verification
lunelson Apr 10, 2026
0878b43
docs: traceability for slice 10.3 — criteria closure and completed wo…
lunelson Apr 10, 2026
4c7af1a
docs: add batch pre-scoping to ln-scope and temporary-document retire…
lunelson Apr 10, 2026
9720577
chore: retire memory/CARDS.md — all slice 10 cards built
lunelson Apr 10, 2026
76608a5
docs: refactor plan — unify review seam duplication
lunelson Apr 10, 2026
1f78574
refactor: rename review → requirementReview on structuredQuestionSchema
lunelson Apr 10, 2026
9fa77a6
refactor: extract shared getReviewStatusesOnActivePath, collapse Revi…
lunelson Apr 10, 2026
3d5e7b9
refactor: extract shared getReviewFromTurn, remove per-kind extractio…
lunelson Apr 10, 2026
1a34b2f
refactor: extract shared recordReviewFromTurnResponse, remove per-kin…
lunelson Apr 10, 2026
c814b02
refactor: extract shared validateReviewOptionPosition in structuredQu…
lunelson Apr 10, 2026
c13a900
chore: retire completed review-seam refactor plan
lunelson Apr 10, 2026
3d8eb1c
chore: ln-sync — update coverage counts, refresh parallelism notes af…
lunelson Apr 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .agents/skills/ln-build/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,10 @@ Use these to decide whether a candidate fact is already covered by an existing l

When uncertain between merge and add → add. When uncertain between update and no-op → update.

## Temporary-document retirement

If this build used a card from `memory/CARDS.md` or a step from `memory/REFACTOR.md`, check whether all items in that document are now complete. If so, confirm with the user that the document should be deleted — these are temporary working documents that should not outlive their purpose.

## Routing

After traceability is complete, present these options to the user (use `tool-ask-question`):
Expand Down
12 changes: 12 additions & 0 deletions .agents/skills/ln-scope/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,18 @@ Name the oracle strategy for this slice. If `memory/SPEC.md` §Oracle Strategy b

A slice without a verification approach is not fully scoped. At minimum, inner-loop oracles must be named. Middle/outer are required when the slice touches LLM boundaries, visual rendering, or compositional behavior. Those slices should run through `ln-oracles` before `ln-build`.

## Batch pre-scoping (optional)

When several near-term slices follow a **proven structural pattern** with linear dependencies, scope them together into `memory/CARDS.md` instead of one at a time. This compresses planning without separate scope→build→scope context switches.

**Use when:** slices mirror a pattern already validated by earlier work, dependencies are linear and well-understood, and risk is in execution rather than discovery.

**Avoid when:** slices are exploratory, the design space has genuine uncertainty, or building slice N could fundamentally change what slice N+1 should be.

`memory/CARDS.md` is a **temporary derivative document** — no authority, derivative of `memory/PLAN.md` for active implementation convenience. Delete it once all cards are built or superseded. Same convention as `memory/REFACTOR.md`.

**Escape valve:** if a build invalidates a downstream card's assumptions, revise the card before building it — never build against stale scope.

## Traceability (mandatory — do before routing)

After the scope card is complete, do these before presenting routing options:
Expand Down
161 changes: 0 additions & 161 deletions memory/CARDS.md

This file was deleted.

12 changes: 5 additions & 7 deletions memory/PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@
- Result: interviewer grounded in requirement inventory; targeted approve/reject via review metadata + `turn_knowledge_item` links; closeability from full review coverage; shared phase-close seam reused for requirements → criteria handoff
- Tracer bullets: 9.1 inventory grounding `done`, 9.2 targeted approval `done`, 9.3 targeted rejection `done`, 9.4 closeability + proposal `done`, 9.5 closure + criteria handoff `done`

10.1 **Criteria grounding + first synthesis/review loop** — Prove the first post-requirements criteria turn is grounded in the approved requirement set and can round-trip one first criterion through the existing seams without widening into the full criteria lifecycle. `not-started`
10.1 **Criteria grounding + first synthesis/review loop** `done`
- Requirements: → SPEC.md §Requirements #6, #8, #12
- Assumptions: → SPEC.md §Assumptions A28, A40
- Decisions: → SPEC.md §Decisions D25, D55, D56, D71
Expand All @@ -153,7 +153,7 @@
- Acceptance: after requirements closes, the first criteria turn includes the approved requirement inventory, asks a criteria-shaped question rather than a generic follow-up, and one initial criterion can round-trip through observer/entity persistence without dropping out of criteria mode
- **Verification approach**: inner — criteria context/prompt seam tests plus criterion projection tests. Middle — round-trip oracle proving approved requirement inventory → criteria interviewer turn → criterion persistence/entities refresh. Outer — manual walkthrough judges whether the first criteria turn feels grounded in the reviewed requirement set.

10.2 **Explicit criterion review state + minimal closeability** — Establish the first explicit per-criterion review seam and deterministic closeability rule in one slice rather than splitting approval, rejection, and closeability into separate tracer bullets. `not-started`
10.2 **Explicit criterion review state + minimal closeability** — Establish the first explicit per-criterion review seam and deterministic closeability rule in one slice rather than splitting approval, rejection, and closeability into separate tracer bullets. `done`
- Requirements: → SPEC.md §Requirements #7, #8, #12, #13
- Assumptions: → SPEC.md §Assumptions A15, A28
- Decisions: → SPEC.md §Decisions D24, D61, D65, D66, D70
Expand All @@ -162,7 +162,7 @@
- Acceptance: a targeted criteria-review turn can persist one explicit positive review action and one explicit non-positive review action, read-side projection resolves latest review state per criterion, and workflow marks criteria closeable only when no criterion remains `pending`
- **Verification approach**: inner — criterion review metadata/read-model/workflow-state tests. Middle — round-trip oracle proving explicit criterion review actions persist and project without drift, plus lifecycle oracle proving criteria stays `in_progress` until review coverage is complete. Outer — manual criteria review walkthrough judges whether the thin approve/reject semantics are legible enough to keep moving.

10.3 **Criteria closure + completed workflow state** — Reuse the shared phase-close seam to close the final workflow phase and project a completed interview state once criteria review reaches the minimum bar. `not-started`
10.3 **Criteria closure + completed workflow state** — Reuse the shared phase-close seam to close the final workflow phase and project a completed interview state once criteria review reaches the minimum bar. `done`
- Requirements: → SPEC.md §Requirements #7, #8, #13
- Assumptions: → SPEC.md §Assumptions A15, A28
- Decisions: → SPEC.md §Decisions D65, D66, D71
Expand Down Expand Up @@ -293,10 +293,8 @@ Phase 8: 14 ──→ 15 (drizzle-kit audit remediation)

### Parallelism opportunities

- With 7, 7a, 7b, 8, and 9 all done, the next primary slice is 10.1 (criteria grounding + first synthesis/review loop).
- 10.2 and 10.3 should follow linearly; they are intentionally the minimum slices needed to unblock completed interview flow rather than separate variants of the same review seam.
- 11a (project dashboard workflow state) can begin once 10.3 lands; it does not need the broader knowledge workspace.
- 12 (knowledge workspace) and 13 (export) can proceed in parallel once 10.3 stabilizes the criteria artifacts and completed-workflow state.
- 10.1–10.3 are done; the review seam has been unified (refactor landed between 10.3 and 11a).
- 11a (project dashboard workflow state), 12 (knowledge workspace), and 13 (export) are all unblocked and can proceed in parallel.
- 13a (review lifecycle refinement) is explicitly deferred; it should collect rarer review variants after 12 and 13 stabilize rather than fragmenting slices 9 and 10.
- 14 (npx) can start early with a basic launcher, completing after slice 13 when the export predicate stabilizes.
- 15 (drizzle-kit audit remediation) should wait until 14 lands.
Loading