Skip to content

Sync plan for FE-806 start#169

Draft
lunelson wants to merge 16 commits into
ln/fe-795-live-over-web-rpcfrom
ln/fe-806-agents-composition-layer
Draft

Sync plan for FE-806 start#169
lunelson wants to merge 16 commits into
ln/fe-795-live-over-web-rpcfrom
ln/fe-806-agents-composition-layer

Conversation

@lunelson
Copy link
Copy Markdown
Contributor

@lunelson lunelson commented Jun 4, 2026

Sync plan for FE-806 start

Port Bilal spec graphs as dev fixtures + interrogative normalization rule

Add a one-off port of three spec graphs (~916 nodes, ~1866 edges) from
Bilal's spec-elicitation prototype into brunch-shaped JSON fixtures
under .fixtures/seed-specs/bilal-port/. Intended as rich, real
development seed data for the dev SQLite database. Not a probe-run
artifact; sits alongside .fixtures/runs/ rather than inside it. The
porting script is co-located with its output (.fixtures/** is excluded
from the verification harness by project config).

Mapping highlights derived in conversation:

  • decision hubs collapse hub-and-spoke into a single decision node
    with detail.{chosen_option, rejected[], rationale}
  • evidence ports to oracle plane with one synthetic per-spec check
    as its realization parent
  • risk and design semanticRoles port to context with source-field
    curation flags (derived-risk-or-question, derived-design-statement)
  • derived_from defaults to dependency, downgraded to support[for]
    when target is observational (evidence/assumption)
  • authority projects to brunch source; epistemicStatus=inferred maps
    to basis=accepted_review_set, others to basis=explicit, with
    epistemic flavor concatenated into source
  • displayId preserved as bracket suffix in source for traceability

Add an interrogative-content-normalization subsection to
docs/design/GRAPH_MODEL.md under Prompting guidance, codifying the
rewrite rule that motivates the risk-to-context mapping: brunch has
no question kind because intent nodes are claims; questions are
rewritten into the latent declarative (assumption, criterion, or
unresolved-state context), and the discovery-to-resolution arc uses
decision -[supersession]-> context.

Amp-Thread-ID: https://ampcode.com/threads/T-019e91ee-aa39-73d2-a346-a0ae1e55e3b9
Co-authored-by: Amp amp@ampcode.com

FE-806: Add agent prompt manifest skeleton

lunelson and others added 3 commits June 4, 2026 12:08
…rule

Add a one-off port of three spec graphs (~916 nodes, ~1866 edges) from
Bilal's spec-elicitation prototype into brunch-shaped JSON fixtures
under .fixtures/seed-specs/bilal-port/. Intended as rich, real
development seed data for the dev SQLite database. Not a probe-run
artifact; sits alongside .fixtures/runs/ rather than inside it. The
porting script is co-located with its output (.fixtures/** is excluded
from the verification harness by project config).

Mapping highlights derived in conversation:
- decision hubs collapse hub-and-spoke into a single decision node
  with detail.{chosen_option, rejected[], rationale}
- evidence ports to oracle plane with one synthetic per-spec check
  as its realization parent
- risk and design semanticRoles port to context with source-field
  curation flags (derived-risk-or-question, derived-design-statement)
- derived_from defaults to dependency, downgraded to support[for]
  when target is observational (evidence/assumption)
- authority projects to brunch source; epistemicStatus=inferred maps
  to basis=accepted_review_set, others to basis=explicit, with
  epistemic flavor concatenated into source
- displayId preserved as bracket suffix in source for traceability

Add an interrogative-content-normalization subsection to
docs/design/GRAPH_MODEL.md under Prompting guidance, codifying the
rewrite rule that motivates the risk-to-context mapping: brunch has
no question kind because intent nodes are claims; questions are
rewritten into the latent declarative (assumption, criterion, or
unresolved-state context), and the discovery-to-resolution arc uses
decision -[supersession]-> context.

Amp-Thread-ID: https://ampcode.com/threads/T-019e91ee-aa39-73d2-a346-a0ae1e55e3b9
Co-authored-by: Amp <amp@ampcode.com>
Copy link
Copy Markdown
Contributor Author

lunelson commented Jun 4, 2026

@semgrep-code-hashintel
Copy link
Copy Markdown

Semgrep found 1 detect-replaceall-sanitization finding:

Detected a call to replaceAll() in an attempt to HTML escape the string value. Manually sanitizing input through a manually built list can be circumvented in many situations, and it's better to use a well known sanitization library such as sanitize-html or DOMPurify.

lunelson and others added 13 commits June 4, 2026 13:10
Adds ln-plan/references/{proving,earned}.md with posture-specific
sequencing doctrine and annotation field sets. ln-plan/SKILL.md gains
§Operating posture and Procedure Step 0 (read .pi/POSTURE.md + load
matching reference) in place of the old §Tracer-bullet sequencing.
ln-scope, ln-consult, and the praxis doc are updated to mirror the
posture split: Posture check / Posture-aware route override with
proving and earned branches.

The earned-mode reference introduces a closure move-set (materialize,
consolidate, name canonically, delete-as-progress, retire bridges,
take-the-bigger-step), a circling-recognition heuristic, sprawl
guardrails, and earned→proving regression handling. Boundaries with
ln-refactor (safe mechanics) and ln-sync (canonical GC) are explicit.

Plan-template adds mandatory Certainty: and Posture annotations:
fields to frontier definitions.

Amp-Thread-ID: https://ampcode.com/threads/T-019e91c8-a351-75ea-b7b0-29be68d448d2
Co-authored-by: Amp <amp@ampcode.com>
Pi parses slash command names as everything between the leading / and
the first whitespace, so a command registered with the literal name
'brunch:switch' is invocable as /brunch:switch -- the same trick the
built-in /skill:<name> registry uses.

Introduce src/.pi/extensions/commands.ts as the registration hub for
the /brunch:* namespace. It owns:

  - /brunch:switch   - opens the spec/session picker (delegates to the
                       runBrunchWorkspaceAction helper that still lives
                       in workspace-dialog.ts as private impl).
  - /brunch:continue - notify-only stub for the recover/resume flow.
  - /brunch:lens     - notify-only stub.
  - /brunch:strategy - notify-only stub.
  - /brunch:mode     - notify-only stub.
  - ctrl+shift+b shortcut, preserved with a notify-only warning that
    points at /brunch:switch (Pi shortcut contexts cannot switch
    sessions yet).

workspace-dialog.ts is reduced to its private dialog action helpers
(runBrunchWorkspaceAction / runBrunchWorkspaceCommand). The retired
BRUNCH_WORKSPACE_COMMAND / BRUNCH_WORKSPACE_SHORTCUT constants,
registerBrunchWorkspaceDialog wrapper, and unused notify-only default
export are removed (pre-release posture - no compat shim).

pi-extension-shell.ts wires registerBrunchCommands in place of
registerBrunchWorkspaceDialog and updates re-exports.

Tests follow the new shape: the extension-registry smoke test now
points at commands.ts instead of workspace-dialog.ts and asserts the
full 5-command registration order; brunch-tui.test.ts uses the new
constants and exercises each stub handler to confirm the notify path.

Amp-Thread-ID: https://ampcode.com/threads/T-019e9276-ae38-770d-92de-a4dcff8b378b
Co-authored-by: Amp <amp@ampcode.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant