Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
164 commits
Select commit Hold shift + click to select a range
b739e7d
FE-744: Document Pi command containment evidence
lunelson May 22, 2026
ff11a43
FE-744: Prove dynamic Brunch chrome wrapper
lunelson May 22, 2026
6d3962d
restore provisional plan
lunelson May 22, 2026
120bd98
FE-744: Refresh provisional Pi UI handoff
lunelson May 22, 2026
d7d4655
Tighten ln-build artifact cleanup guardrails
lunelson May 22, 2026
ab7f6fc
capture brunch ANSI logo exploration and decision
lunelson May 22, 2026
b5a0f33
FE-744: Add workspace launch inventory
lunelson May 22, 2026
29c6d89
FE-744: Activate workspace switch decisions
lunelson May 22, 2026
b818895
FE-744: Add workspace switcher decision UI
lunelson May 22, 2026
79b2e35
FE-744: Gate TUI startup on workspace switch
lunelson May 22, 2026
3b766cc
FE-744: Rename implicit coordinator operations
lunelson May 22, 2026
bdcee92
FE-744: Split coordinator caller interfaces
lunelson May 22, 2026
1e8bc03
FE-744: Remove source-string boundary tests
lunelson May 22, 2026
c86d601
FE-744: Require activated chrome session state
lunelson May 22, 2026
5507051
FE-744: Narrow coordinator test doubles
lunelson May 22, 2026
ef77639
FE-744: Route fixture capture through RPC handlers
lunelson May 22, 2026
3bc76cf
FE-744: Extract Brunch Pi extension entrypoint
lunelson May 22, 2026
f8ba7b8
FE-744: Split workspace switcher modules
lunelson May 22, 2026
c268fff
FE-744: Replace shell source test with helpers
lunelson May 22, 2026
4c7378e
FE-744: Fix offline default env typing
lunelson May 22, 2026
98fbc16
FE-744: Retire exhausted refactor queue
lunelson May 22, 2026
14e0f13
FE-744: Split Brunch extension surfaces
lunelson May 22, 2026
b7be6a5
FE-744: Allocate Brunch chrome surfaces
lunelson May 22, 2026
a724b75
FE-744: Add in-session workspace switch command
lunelson May 22, 2026
ee08a64
FE-744: Add startup no-resume oracle
lunelson May 22, 2026
7892e08
FE-744: Reconcile Pi UI extension memo
lunelson May 22, 2026
6974ee1
FE-744: Use default workspace custom UI
lunelson May 22, 2026
7ed1a90
FE-744: Remove empty footer formatter
lunelson May 22, 2026
69d683f
FE-744: Restore default working indicator
lunelson May 22, 2026
17c2087
FE-744: Document simplified custom UI posture
lunelson May 22, 2026
1b4a4eb
FE-744: Delete inert working indicator seam
lunelson May 22, 2026
a0be850
FE-744: Make Brunch extension shell explicit
lunelson May 22, 2026
4b280ba
do docs sync, to capture remaining critical UI issues
lunelson May 22, 2026
ebca282
wip on brunch pi extensions
lunelson May 26, 2026
dad4c86
header and footer looking reasonable
lunelson May 26, 2026
6ac47ab
brunch tool restrictions + autocomplete system prompt inject + docs u…
lunelson May 26, 2026
c2dc8cb
FE-744: Reconcile structured elicitation planning
lunelson May 27, 2026
5164034
add project identity discovery module
lunelson May 27, 2026
7f25490
spec, plan and scope updates
lunelson May 27, 2026
b3d4580
FE-744 flatten pi extension shell
lunelson May 27, 2026
6f8a646
FE-744 move pi tui components
lunelson May 27, 2026
078d2c4
FE-744 add brunch menu shell
lunelson May 27, 2026
cf1959c
FE-744 merge honest chrome wrapper
lunelson May 27, 2026
61e29fa
FE-744 port operational mode policy
lunelson May 27, 2026
f757853
FE-744 port mention autocomplete
lunelson May 27, 2026
bad0351
FE-744 port alternatives primitive
lunelson May 27, 2026
adf9c6a
FE-744 retire pi probe runtime
lunelson May 27, 2026
347057f
interim draft scoping
lunelson May 27, 2026
0b3cfc5
stub a POC for modal brunch menu
lunelson May 27, 2026
4e7c3d7
FE-744 reconcile pi extension port cleanup
lunelson May 27, 2026
213c411
FE-744 project brunch agent runtime state
lunelson May 27, 2026
19e2a25
FE-744 apply brunch agent runtime posture
lunelson May 27, 2026
a07443f
FE-744: Share Brunch workspace dialog
lunelson May 27, 2026
7d48308
FE-744 persist brunch agent runtime switches
lunelson May 27, 2026
11e3a02
FE-744 reconcile runtime state cards
lunelson May 27, 2026
7b5d180
config housekeeping
lunelson May 27, 2026
f38d27e
WIP on workspace-dialog, essential style and flow is right
lunelson May 27, 2026
b837ac9
workspace menu ux refinement plan
lunelson May 27, 2026
66087bb
Add hierarchical spec session selection model
lunelson May 27, 2026
47d1483
Render hierarchical spec session picker
lunelson May 27, 2026
a3dcec2
Expose RPC spec session activation
lunelson May 27, 2026
02c52a0
Retire workspace picker wording
lunelson May 27, 2026
007526d
Adjust spec session picker UX
lunelson May 27, 2026
b0ca853
Refine picker layout and in-session order
lunelson May 27, 2026
7515818
Hide illogical spec session picker options
lunelson May 27, 2026
b502e36
Support ctrl-c in spec session picker
lunelson May 27, 2026
bdd68de
plan refinements for critical UI proof slices
lunelson May 27, 2026
6ef7063
Retire flat spec session picker API
lunelson May 27, 2026
5bd098f
Schema-validate spec session RPC activation
lunelson May 27, 2026
c43c122
Restore rich Brunch chrome projection
lunelson May 27, 2026
c02496c
Define structured question result payloads
lunelson May 27, 2026
beecf58
Add structured question TUI adapter
lunelson May 27, 2026
d4361f0
Add structured question RPC editor fallback
lunelson May 27, 2026
ac20c6b
spec and plan updates re compaction control
lunelson May 27, 2026
ddd300f
Characterize structured question terminal details
lunelson May 27, 2026
56e3dc3
Prove structured question RPC editor fallback
lunelson May 27, 2026
c025fd4
Expose structured question RPC proof test
lunelson May 27, 2026
732658f
Project terminal structured question responses
lunelson May 27, 2026
babdbfa
Cover structured question JSONL projection
lunelson May 27, 2026
bd5bebf
Reconcile structured question proof evidence
lunelson May 27, 2026
68f29ea
Retire structured question refactor queue
lunelson May 27, 2026
1ec6886
spec and plan re side- and sub-agents vs side-tasks
lunelson May 27, 2026
e9c78ea
Characterize fixture mention mode
lunelson May 27, 2026
89d2e8c
Characterize live chrome footer
lunelson May 27, 2026
8336e74
Extract chrome formatting helpers
lunelson May 27, 2026
8b26108
Recover chrome header summary
lunelson May 27, 2026
1e30359
Reconcile chrome status ownership
lunelson May 27, 2026
9a6b791
Move chrome behavior tests to chrome module
lunelson May 27, 2026
1435161
Move mention autocomplete tests to feature module
lunelson May 27, 2026
308f743
Expose chrome footer telemetry projection
lunelson May 27, 2026
b950756
Narrow aggregate chrome exports
lunelson May 27, 2026
172e27a
Hide fixture mention exports
lunelson May 27, 2026
135b53f
Prune private chrome helper exports
lunelson May 27, 2026
3357e10
big disambiguation sync re spec and session state, grades, postures, etc
lunelson May 28, 2026
8bafc05
plan adjustment re priority of falsification of assumptions
lunelson May 28, 2026
61b67a0
focus the next plan on proving structured exchanges
lunelson May 28, 2026
bb053c1
first pass on question tool refinements
lunelson May 28, 2026
c82009a
Stabilize ask user question rendering
lunelson May 28, 2026
09b0ec2
Keep ask user question tests out of extension loading
lunelson May 28, 2026
e238fdb
Move experimental question tool under structured exchange
lunelson May 28, 2026
878cf10
spec/plan/cards for minimal questionnaire logic integration
lunelson May 28, 2026
37bce3a
Add structured exchange option notes
lunelson May 28, 2026
b18d32d
Add structured exchange editor fallback
lunelson May 28, 2026
929c18f
Add structured exchange RPC proof
lunelson May 28, 2026
2c1c4d5
ln- skill pass on attacking uncertainty
lunelson May 28, 2026
b4c2260
Add public RPC method discovery
lunelson May 28, 2026
b438d40
sharpening of ln- skills around tracer bullet convergent targets
lunelson May 28, 2026
b3a648d
Add deterministic elicitation start RPC
lunelson May 28, 2026
833f99d
structured-exchange jit side mission
lunelson May 28, 2026
771b2d4
Replace option notes with inline JIT editor
lunelson May 28, 2026
c7a9b28
Add pending elicitation exchange RPC
lunelson May 28, 2026
1107684
Add listed-option elicitation response RPC
lunelson May 28, 2026
ac61cdf
Accept chunked startup title input
lunelson May 28, 2026
13aec58
Expose ask user question in elicit mode
lunelson May 28, 2026
fcd0150
Move structured exchange into discoverable tui extension
lunelson May 28, 2026
eec01f9
Move Pi TUI modules under discoverable client tree
lunelson May 28, 2026
c443a71
Colocate TUI client tests under pi test directory
lunelson May 28, 2026
44ad6b1
Consolidate structured exchange tool
lunelson May 28, 2026
add52f9
Record durable structured exchange rendering model
lunelson May 28, 2026
04dada6
pi local settings
lunelson May 28, 2026
fd73c60
add topographic legibility as ln-review dimension
lunelson May 28, 2026
f1e1b90
Move public RPC modules under rpc tree
lunelson May 28, 2026
ee9a28d
Move probe harnesses under probes tree
lunelson May 28, 2026
e4e9c2b
Rename runbook checks to probe scripts
lunelson May 28, 2026
79fdd67
Remodel structured exchange tools
lunelson May 28, 2026
449856f
Prove structured exchange ordering
lunelson May 28, 2026
cf88f80
handoff state, as of resolved structured-exchange plan
lunelson May 29, 2026
08763bb
Implement structured exchange request choices
lunelson May 29, 2026
90e015f
Project structured exchange tuples
lunelson May 29, 2026
7173caf
Move RPC elicitation onto tuple truth
lunelson May 29, 2026
02ff9b9
Add public RPC parity proof
lunelson May 29, 2026
a35378d
Harden public RPC parity exchange identity
lunelson May 29, 2026
8d7d4d2
Close pending exchange on terminal request status
lunelson May 29, 2026
2ccf223
Preserve option artifacts in RPC parity
lunelson May 29, 2026
e597a54
Sync FE-744 RPC parity state
lunelson May 29, 2026
3d852e5
Add session transcript renderer
lunelson May 29, 2026
56125ca
Discover prod-ready Brunch Pi extensions
lunelson May 29, 2026
ae38284
Add public RPC parity probe artifacts
lunelson May 29, 2026
33a512e
Harden parity artifact witness
lunelson May 29, 2026
89ea09c
Add parity report envelope
lunelson May 29, 2026
83795e1
Render semantic transcripts by default
lunelson May 29, 2026
6c63158
post semantic-transcripts sync
lunelson May 29, 2026
eb72316
Restore explicit Brunch extension registry
lunelson May 29, 2026
adcd881
Canonicalize fixture root
lunelson May 29, 2026
efd4b5f
Retire stale brief fixture machinery
lunelson May 29, 2026
be21585
Bound public RPC parity to exchange permutations
lunelson May 29, 2026
08f144d
Add web live updates for RPC exchanges
lunelson May 29, 2026
f101d1f
spec and scope capture re tool schemas, in great detail
lunelson May 29, 2026
f8bb3d4
Add Brunch prompt-pack topology
lunelson May 30, 2026
b693e4e
Add structured exchange schema contract README
lunelson May 30, 2026
c5c06f7
Add structured exchange shared schemas
lunelson May 30, 2026
549593b
Add structured exchange present schemas
lunelson May 30, 2026
7e097b3
Add structured exchange request schemas
lunelson May 30, 2026
52f9a96
Add minimal structured exchange capture schemas
lunelson May 30, 2026
a016b88
Export structured exchange schema surface
lunelson May 30, 2026
f6579a7
add pseudo skill + cross-links + living examples in PLAN.md
lunelson May 30, 2026
b99d94e
ln-judo-review: cross-link to pseudo for before/after artifacts of co…
lunelson May 30, 2026
7ec027b
post-skill sync, after pseudo stuff added
lunelson May 30, 2026
10f926f
FE-744: Extract Brunch TUI identity primitives
lunelson May 30, 2026
e18750a
FE-744: Brand persistent TUI chrome
lunelson May 30, 2026
ab7d07f
FE-744: Capture branded startup chrome evidence
lunelson May 30, 2026
94cab6d
FE-744: Reconcile chrome closeout
lunelson May 30, 2026
95941c1
FE-744: Reconcile chrome title status
lunelson May 30, 2026
782626d
plan enhancements re graph extension
lunelson May 30, 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
19 changes: 14 additions & 5 deletions .agents/skills/ln-build/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,8 @@ Run the project's verification harness. All checks must pass. If the card proved

After verification, reconcile canonical state every time. The reconciliation may end in a no-op, but skipping it is not allowed.

**Notation aid.** When the reconciliation records slice acceptance breakdowns, module sketches, call/dependency shapes, or schema-shaped invariants into canonical docs, use `pseudo` forms (`tree` for obligation decomposition; `chain` for call graphs; `graph` for cross-module relations; `data-shape` for sketched schemas). Preserve any `pseudo` artifacts already present in SPEC/PLAN — do not collapse them back into prose.

Traceability depth is **conditional**, not automatic.

After the build lands and verification passes, ask:
Expand Down Expand Up @@ -150,12 +152,19 @@ Before finishing reconciliation, perform a quick cross-skill check: if a later a

### Retire derivative artifacts

After reconciliation, garbage-collect exhausted temporary files instead of leaving breadcrumbs or tombstones:
After reconciliation, garbage-collect exhausted temporary files instead of leaving breadcrumbs or tombstones, but deletion is narrowly scoped.

Default deletion target:

- `memory/CARDS.md` — delete only when the execution queue is fully exhausted, superseded, or empty after reconciliation.

Other volatile artifacts are **review-before-delete**, not automatic cleanup:

- `HANDOFF.md` — delete only when it contains no unfinished transfer state and no future-context inventory that is not already captured in `memory/SPEC.md`, `memory/PLAN.md`, an active scope card, or a stable design memo.
- `memory/REFACTOR.md` — delete only when every listed refactor step is done/dropped and no future sequence depends on it.
- Provisional docs outside `memory/` (for example `docs/**/provisional*.md`, handoff plans, spike plans, or exploration inventories) — do **not** delete during `ln-build` cleanup unless the user explicitly asks or you first prove that all remaining future-facing inventory has been absorbed elsewhere. If only the current card is done but the artifact still contains later affordances, open questions, or scoping input, update it instead of deleting it.

- `HANDOFF.md` — keep only if unfinished volatile transfer state still exists; otherwise delete it
- `memory/CARDS.md` — keep only while queued scope cards still remain; otherwise delete it
- `memory/REFACTOR.md` — keep only while unfinished refactor steps still depend on it; otherwise delete it
- Do not create archive copies, numbered handoffs, or completion-pointer files
Before deleting anything other than `memory/CARDS.md`, name the file, state why no future agent would need it, and prefer asking the user when uncertain. Do not create archive copies, numbered handoffs, or completion-pointer files.

## Routing

Expand Down
17 changes: 16 additions & 1 deletion .agents/skills/ln-consult/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ Start the assessment with 2-4 bullets naming:
- the active frontier item or nearby priority
- volatile state or manual follow-up from handoff
- the main open risk
- the cheapest tracer bullet that would score on proof of life, invariants, or uncertainty retirement (see `docs/praxis/ln-skills.md` §Tracer-bullet sequencing)

## Work-type classification

Expand Down Expand Up @@ -72,9 +73,23 @@ Only recommend the bounded or direct-build exceptions when all of these are true
- the containing seam is already named in the live docs
- no durable requirement / assumption / decision / invariant change is expected
- post-build reconciliation can plausibly be a no-op
- no high-impact unresolved `memory/SPEC.md` §Assumption is load-bearing for this work

Only recommend the bounded serial exception when those same conditions hold and the next several commit-sized steps are obvious enough to queue without fresh planning.

## Tracer-bullet override

When several routes fit the work, prefer the one that fires the **tracer bullet that tells you the most**. A tracer-bullet slice scores on three convergent axes (see `docs/praxis/ln-skills.md` §Tracer-bullet sequencing): proof of life, invariants, uncertainty. The best next slice scores on more than one.

Given the repo's pre-release posture, attack uncertainty by building. Recommend a non-build route only when no buildable tracer bullet can carry the proof:

- `ln-design` — module shape itself is uncertain and any slice would lock in the wrong seam
- `ln-oracles` — verification is too uncertain to distinguish a passing slice from a wrong one
- `ln-spike` — research-grade or external question (third-party API contract, vendor perf characteristic, library behavior under load)
- `ln-prototype` — feel, comparison, or UX-legibility question where playable variants beat real code

Spikes are the escape hatch, not the default.

## Routing table

| Situation | Work type | Suggest |
Expand All @@ -88,7 +103,7 @@ Only recommend the bounded serial exception when those same conditions hold and
| One settled frontier item needs several small verified commits in sequence | bounded, hardening | `ln-scope` then serial `ln-build` loop, optionally via `memory/CARDS.md` |
| Module interface needs exploration | structural | `ln-design` |
| Full or light scope card exists, ready to code | bounded, hardening, bugfix | `ln-build` |
| Technical uncertainty blocks progress | any | `ln-spike` |
| Technical uncertainty blocks progress, or a cheap investigation could invalidate planned work | any | `ln-spike` |
| Code works but needs restructuring | refactor | `ln-refactor` |
| Code works but quality / architecture needs audit | any | `ln-review` |
| Docs are stale, overweight, or milestone context needs cleanup | structural / maintenance | `ln-sync` |
Expand Down
22 changes: 16 additions & 6 deletions .agents/skills/ln-design/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@ Spawn 3+ sub-agents simultaneously. Each must produce a **radically different**
- "Optimize for the most common case"
- "Take inspiration from [specific paradigm or library]"

Each agent returns: **interface** (types, methods, params, invariants, ordering constraints, error modes, required configuration, and performance characteristics), **usage example**, **what it hides**, **seam / adapter strategy** where relevant, and **trade-offs**.
Each agent returns: **interface** (types, methods, params, invariants, ordering constraints, error modes, required configuration, and performance characteristics), **usage example**, **what it hides**, **seam / adapter strategy** where relevant, **trade-offs**, **load-bearing claims** (1–3 falsifiable beliefs the design rests on — for each, note whether it is already covered by `memory/SPEC.md` §Assumptions), and **cheapest tracer bullet** — the thinnest `ln-scope` slice whose landing would light up the seam and break if the claim is wrong. Fall back to `ln-spike` only when no buildable slice could carry the proof.

**Notation aid.** Express each candidate module shape using `pseudo` (`graph` or `tree` for module relations, `data-shape` for interface shapes, `lanes` for cross-actor seams). Side-by-side `pseudo` artifacts make alternatives directly comparable in the same form rather than as divergent prose.

### 3. Present and compare

Expand All @@ -43,16 +45,23 @@ Show each design sequentially, then compare in prose on:
- **Ease of correct use** vs ease of misuse
- **General-purpose vs specialized**: flexibility vs focus
- **Implementation efficiency**: does the shape allow efficient internals?
- **Epistemic cost**: how much unvalidated reality this shape asks callers / sequencing to trust, and how cheaply that trust can be tested before committing

Highlight where designs diverge most.
Highlight where designs diverge most, including which design has the cheapest path to falsification if its load-bearing claims are wrong.

### 4. Synthesize

The best design often combines insights from multiple options. Ask which shape best fits the primary use case and whether elements from other designs are worth incorporating.

## Output

Present the recommended module shape with rationale. If `memory/SPEC.md` exists, ensure names align with its lexicon.
Present the recommended module shape with rationale, plus:

- the 1–3 load-bearing claims it rests on
- which of those are already covered by `memory/SPEC.md` §Assumptions and which need to be added there
- the recommended first tracer bullet — a thin `ln-scope` slice that would light up the seam and break if the chosen design's highest load-bearing claim is wrong; fall back to `ln-spike` only when no slice could carry the proof more cheaply

If `memory/SPEC.md` exists, ensure names align with its lexicon.

Do not invent a standalone design document unless the user explicitly asks for one. Durable design choices reconcile back into `memory/SPEC.md` and `memory/PLAN.md`.

Expand All @@ -63,10 +72,11 @@ After choosing a design, present these options to the user (use `tool-ask-questi
| # | Label | Target | Why |
| --- | ------------- | ---------- | ---------------------------------------- |
| 1 | Scope a slice | `ln-scope` | Design is chosen, define the first slice |
| 2 | Write a spec | `ln-spec` | Module needs a full spec before slicing |
| 3 | Grill it more | `ln-grill` | Design choice raised new questions |
| 2 | Spike first | `ln-spike` | The chosen design rests on a low-confidence load-bearing claim worth retiring before scoping |
| 3 | Write a spec | `ln-spec` | Module needs a full spec before slicing |
| 4 | Grill it more | `ln-grill` | Design choice raised new questions |

Recommended: **1**
Recommended: **1** — including when a load-bearing claim is low-confidence, because the preferred falsifier is a tracer-bullet slice that breaks if the claim is wrong. Recommend **2 (Spike first)** only when no buildable slice could carry the proof.

---
*Adapted from [mattpocock/skills/design-an-interface](https://github.com/mattpocock/skills/tree/main/design-an-interface).*
2 changes: 2 additions & 0 deletions .agents/skills/ln-judo-review/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ Functional core / imperative shell (Gary Bernhardt): when independent work is ne

If yes, name it. Do not settle for a cleaner version of the same messy idea when a much simpler idea is plausible.

**Notation aid.** When proposing a code-judo move, express it as paired `pseudo` artifacts — current shape (`tree` for module structure, `graph` for control/dependency, `chain` for call flow) → desired shape with the deleted branches, helpers, modes, or layers visibly absent. A concrete before/after pair shows whether complexity actually *vanishes* rather than relocates — which is the whole point of judo over rearrangement. Node/edge counts before vs after are honest metrics: a desired-state graph with fewer nodes and fewer edges than the current one is the artifact form of "deletions over rearrangements."

## Tone

Direct, serious, demanding. Not rude. Do not soften major maintainability issues into mild suggestions. Worked examples of the register:
Expand Down
32 changes: 29 additions & 3 deletions .agents/skills/ln-plan/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ Use **slice** for the buildable scope card produced by `ln-scope` and implemente

The vertical-slicing instinct still applies at planning time: frontier items should cut through the relevant concerns of `memory/SPEC.md` instead of becoming layer-by-layer chores. The term "frontier" names their canonical/branch role; the term "slice" remains reserved for scoped execution.

**Notation aid.** Express the `Dependencies` block as `pseudo graph` rather than a hand-drawn tree — cross-edges (optional successors, on-promotion edges) and dependency-edge types (`-[hard]->`, `-[optional]->`, `-[on promotion]->`) stay visible, and horizon items go in an `unconnected` group so they're acknowledged without implying spine relations. See `pseudo references/graph.md` worked example "roadmap dependency graph."

## Plan document shape

Prefer the conflict-resistant mature shape:
Expand Down Expand Up @@ -100,6 +102,29 @@ When a frontier completes, remove it from `Sequencing`, add a terse `Recently Co

If live low-confidence assumptions block downstream work, stop the plan at that boundary. Plan spikes or thinner proving frontier items, not fantasy certainty.

### Tracer-bullet sequencing

Sequencing is not only seam-driven. A good tracer-bullet frontier scores on three convergent axes (see `docs/praxis/ln-skills.md` §Tracer-bullet sequencing): **proof of life**, **invariants**, **uncertainty**. The strongest next frontier scores on more than one.

When ranking candidates, weigh:

- **blast radius** if a load-bearing assumption turns out false
- **reversibility cost** if discovered late vs early
- **validation cost** (cheap slice vs expensive end-to-end rework)
- **load-bearingness** (how many active/next frontiers depend on it)

Annotate each `Active` / `Next` frontier definition with the relevant axes when they are in play:

- `Retires: <SPEC assumption id(s)>` — collapses the assumption by landing
- `Depends on: <SPEC assumption id(s)> (validated enough)` — assumption must be settled first
- `Blocked by: <SPEC assumption id(s)>` — load-bearing; do not start until retired
- `Lights up: <pipeline / seam>` — establishes a new end-to-end path
- `Stabilizes: <invariant id(s) or seam>` — locates or fixes structure others will aim from

**Spike exception.** Use `ln-spike` only when no buildable frontier could carry the proof. Do not insert ceremonial spikes when a tracer-bullet frontier exists.

This sequencing pressure is distinct from "Epistemic horizon": that rule tells the planner to *stop* at fog; this rule tells the planner to **fire the tracer that tells you the most**.

## Procedure

1. Read `memory/PLAN.md` if it exists. Identify existing frontier ids and retire/archive stale completed material into `docs/archive/PLAN_HISTORY.md`.
Expand Down Expand Up @@ -146,7 +171,8 @@ After writing the plan, present these options to the user (use `tool-ask-questio
| --- | ----------------- | ------------ | --- |
| 1 | Scope next slice | `ln-scope` | The frontier is clear and ready to scope |
| 2 | Design oracles | `ln-oracles` | Verification design needs explicit work |
| 3 | Grill it more | `ln-grill` | Planning surfaced unresolved product questions |
| 4 | Back to triage | `ln-consult` | Direction needs reassessment |
| 3 | Spike first | `ln-spike` | A load-bearing assumption should be retired before scoping |
| 4 | Grill it more | `ln-grill` | Planning surfaced unresolved product questions |
| 5 | Back to triage | `ln-consult` | Direction needs reassessment |

Recommended: **1**
Recommended: **1** unless tracer-bullet sequencing surfaced a question that no buildable frontier could answer cheaper than a spike (then **3**).
2 changes: 2 additions & 0 deletions .agents/skills/ln-refactor/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ What is wrong, from the developer's perspective.

The target state, from the developer's perspective.

**Notation aid.** Express the structural delta as paired `pseudo` artifacts — `tree` current → `tree` desired, or `graph` current → `graph` desired — under the Problem Statement / Solution headings. The paired form makes the change concrete before commits begin and gives reviewers a single artifact to diff.

## Commits

Ordered list of tiny commits. Each described in plain English — no file paths or snippets. Each leaves the codebase working.
Expand Down
Loading
Loading