NS10 slice: Prove a multi-file coding loop under keystroke budget #74

Closed
opened 2026-06-21 16:36:08 +00:00 by tmk241 · 1 comment
Owner

OBJECTIVE: Add browser-terminal E2E coverage for a realistic multi-file coding loop that opens/navigates across files, edits more than one file or file context, saves, and reports the keystrokes required.

AUTHORITY: Parent #65 (NS10), PRODUCT.md protocol-first mobile terminal editor boundary, REQUIREMENTS.md testing/001-004 and input/session rows, KEYMAP.md file/search/panel/edit workflow grammar, issue created to extend NS10 with multi-file coding efficiency proof.

AGENT AUTHORITY:

  • Delivery authority: local-commit
  • Tracker authority: this issue may be commented and closed when acceptance passes
  • Handoff state: committed clean, tracker commented/closed

PARENT: #65 via parent checklist membership plus this explicit parent reference.

SCOPE: terminal E2E fixtures/scenarios, existing repo/file/search panels, existing save/edit behavior, and harness artifacts needed to prove multi-file work. Use existing project-search/file-picker seams where possible.

BOUNDARIES: Do not build a project model, file watcher, LSP server, native browser client, or new storage layer. Do not claim dogfood completion; fixture/browser-terminal evidence is NS10 proof only. Do not change keymap semantics unless the E2E exposes a direct bug needed for the scenario.

ACCEPTANCE:

  • A terminal E2E scenario starts from a fixture repository with at least two files and performs a coherent coding task that requires switching file context (for example find symbol/use via project search, edit the target file, return/open another file, save).
  • The scenario asserts final saved content for every edited file/context, not just visible text. If current editor persistence cannot save multiple repo files yet, the issue must either implement the minimal local persistence seam or explicitly prove the closest existing multi-file workflow and document the remaining product gap.
  • The scenario emits screenshot/transcript artifacts plus the keystroke-budget artifact from the keystroke slice; it fails if the declared budget is exceeded.
  • The workflow uses mobile-reachable paths where possible and records any attached-key-only steps separately instead of hiding them.
  • Existing single-file terminal E2E scenarios continue to pass.

REGRESSION CLASS: Multi-file coding workflows becoming impossible, too key-heavy, losing edits when switching context, or requiring hidden desktop-only actions before dogfood catches it.

EVIDENCE ARTIFACTS: terminal screenshots/SVG, semantic transcript, saved-content receipts for each file/context, keystroke TSV/manifest rows.

REQUIREMENT IMPACT: protects existing testing/input/session authority; may require requirement update if multi-file persistence becomes a durable v1 contract.

VERIFICATION: zig build terminal-e2e; zig build test; zig build; redgate lint/health if requirements/docs change.

BLOCKERS: depends on the keystroke-budget artifact slice if the budget mechanism is not already present.

SLICE_CONTRACT:
objective: Prove a realistic multi-file coding loop in browser-terminal E2E with saved-content and keystroke evidence.
authority: #65, PRODUCT.md, REQUIREMENTS.md testing/input/session rows, KEYMAP.md, user request to extend NS10.
acceptance: multi-file fixture workflow + final content receipts + screenshots/transcripts + keystroke budget.
verification: zig build terminal-e2e; zig build test; zig build; redgate as needed.
non_goals: no real LSP server, no native client, no dogfood claim, no broad file-storage redesign unless the scenario exposes a minimal blocker.
blockers: keystroke-budget mechanism if absent.

OBJECTIVE: Add browser-terminal E2E coverage for a realistic multi-file coding loop that opens/navigates across files, edits more than one file or file context, saves, and reports the keystrokes required. AUTHORITY: Parent #65 (NS10), PRODUCT.md protocol-first mobile terminal editor boundary, REQUIREMENTS.md testing/001-004 and input/session rows, KEYMAP.md file/search/panel/edit workflow grammar, issue created to extend NS10 with multi-file coding efficiency proof. AGENT AUTHORITY: - Delivery authority: local-commit - Tracker authority: this issue may be commented and closed when acceptance passes - Handoff state: committed clean, tracker commented/closed PARENT: #65 via parent checklist membership plus this explicit parent reference. SCOPE: terminal E2E fixtures/scenarios, existing repo/file/search panels, existing save/edit behavior, and harness artifacts needed to prove multi-file work. Use existing project-search/file-picker seams where possible. BOUNDARIES: Do not build a project model, file watcher, LSP server, native browser client, or new storage layer. Do not claim dogfood completion; fixture/browser-terminal evidence is NS10 proof only. Do not change keymap semantics unless the E2E exposes a direct bug needed for the scenario. ACCEPTANCE: - A terminal E2E scenario starts from a fixture repository with at least two files and performs a coherent coding task that requires switching file context (for example find symbol/use via project search, edit the target file, return/open another file, save). - The scenario asserts final saved content for every edited file/context, not just visible text. If current editor persistence cannot save multiple repo files yet, the issue must either implement the minimal local persistence seam or explicitly prove the closest existing multi-file workflow and document the remaining product gap. - The scenario emits screenshot/transcript artifacts plus the keystroke-budget artifact from the keystroke slice; it fails if the declared budget is exceeded. - The workflow uses mobile-reachable paths where possible and records any attached-key-only steps separately instead of hiding them. - Existing single-file terminal E2E scenarios continue to pass. REGRESSION CLASS: Multi-file coding workflows becoming impossible, too key-heavy, losing edits when switching context, or requiring hidden desktop-only actions before dogfood catches it. EVIDENCE ARTIFACTS: terminal screenshots/SVG, semantic transcript, saved-content receipts for each file/context, keystroke TSV/manifest rows. REQUIREMENT IMPACT: protects existing testing/input/session authority; may require requirement update if multi-file persistence becomes a durable v1 contract. VERIFICATION: `zig build terminal-e2e`; `zig build test`; `zig build`; redgate lint/health if requirements/docs change. BLOCKERS: depends on the keystroke-budget artifact slice if the budget mechanism is not already present. SLICE_CONTRACT: objective: Prove a realistic multi-file coding loop in browser-terminal E2E with saved-content and keystroke evidence. authority: #65, PRODUCT.md, REQUIREMENTS.md testing/input/session rows, KEYMAP.md, user request to extend NS10. acceptance: multi-file fixture workflow + final content receipts + screenshots/transcripts + keystroke budget. verification: zig build terminal-e2e; zig build test; zig build; redgate as needed. non_goals: no real LSP server, no native client, no dogfood claim, no broad file-storage redesign unless the scenario exposes a minimal blocker. blockers: keystroke-budget mechanism if absent.
tmk241 added the sliceready-for-agent labels 2026-06-21 16:36:08 +00:00
Author
Owner

Implemented in d6ebf1c (Prove multi-file terminal coding loop).

What changed:

  • Added a terminal E2E multi-file-coding-loop scenario with a fixture repo containing alpha.zig and beta.zig.
  • The workflow edits and saves beta.zig, opens repo/alpha.zig through the normal-mode open prompt, edits/saves it, and quits.
  • Added saved-files.tsv receipts for scenarios that assert files beyond the launched file.
  • Fixed local file launches so nested fixture paths are launched relative to the temp cwd.
  • Fixed local save persistence for repo-relative currentPath values, so opened repo files save to the intended file instead of the launch target/scratch path.
  • Prompt-open now loads known repo-file contents through the existing repo index before falling back to scratch open behavior.

Verification:

  • zig build terminal-e2e
  • zig build test
  • zig build
  • zig build v1-smoke
  • redgate list /opt/repositories/mim/REQUIREMENTS.md
  • redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md

Evidence from latest run:

  • .zig-cache/terminal-e2e/multi-file-coding-loop/manifest.tsv: key_events=29, max_key_events=30, key_budget=pass, saved_files=alpha.zig,beta.zig.
  • .zig-cache/terminal-e2e/multi-file-coding-loop/saved-files.tsv: records hashes/byte counts for both edited files.
  • .zig-cache/terminal-e2e/multi-file-coding-loop/keystrokes.tsv: lists the full user input sequence and raw bytes.

Note: This proves fixture/browser-terminal multi-file coding efficiency before dogfood. It does not claim the unresolved mobile Insert→Normal decision from #71.

Implemented in `d6ebf1c` (`Prove multi-file terminal coding loop`). What changed: - Added a terminal E2E `multi-file-coding-loop` scenario with a fixture repo containing `alpha.zig` and `beta.zig`. - The workflow edits and saves `beta.zig`, opens `repo/alpha.zig` through the normal-mode open prompt, edits/saves it, and quits. - Added `saved-files.tsv` receipts for scenarios that assert files beyond the launched file. - Fixed local file launches so nested fixture paths are launched relative to the temp cwd. - Fixed local save persistence for repo-relative `currentPath` values, so opened repo files save to the intended file instead of the launch target/scratch path. - Prompt-open now loads known repo-file contents through the existing repo index before falling back to scratch open behavior. Verification: - `zig build terminal-e2e` ✅ - `zig build test` ✅ - `zig build` ✅ - `zig build v1-smoke` ✅ - `redgate list /opt/repositories/mim/REQUIREMENTS.md` ✅ - `redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md` ✅ Evidence from latest run: - `.zig-cache/terminal-e2e/multi-file-coding-loop/manifest.tsv`: `key_events=29`, `max_key_events=30`, `key_budget=pass`, `saved_files=alpha.zig,beta.zig`. - `.zig-cache/terminal-e2e/multi-file-coding-loop/saved-files.tsv`: records hashes/byte counts for both edited files. - `.zig-cache/terminal-e2e/multi-file-coding-loop/keystrokes.tsv`: lists the full user input sequence and raw bytes. Note: This proves fixture/browser-terminal multi-file coding efficiency before dogfood. It does not claim the unresolved mobile Insert→Normal decision from #71.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tmk241/mim#74