Propose the Development Plan #84

Merged
dongar merged 2 commits from development-plan into main 2026-09-30 21:07:40 +00:00
Collaborator

The build plan from the current code to the full architecture, for discussion, as docs/Development-Plan.md. It uses the format the architecture asks agents to use: milestones marked pre-approved or needs discussion.

Contents

  1. Where we are: a survey of main against every section of docs/Architecture.md, marked done / partial / none. Two structural gaps: state is a single row, not a work-items table (L1), and canonical events carry no work item or actor (L7, the root of #78).
  2. The environment today: services, the 4090 host, models by role, bring-up setup.
  3. How we work: plan-first per milestone (a quick confirmation for pre-approved ones, design discussion for the rest); tests; the Quint model moves with the loop; a bring-up run on this box ends each phase, with guards (unprivileged user, test resources only, structural gates kept on until Phase 3 proves the classifier).
  4. Phases:
    • 0, housekeeping: retire the old spec and update references; a bring-up script with an unprivileged user.
    • 1, foundations: work items, transcript views, fresh workspace, publish hygiene, review intake.
    • 2, the conversational loop: built alongside control.py, then retiring it.
    • 3, authority: action classes, the classifier, permissions and the trust dial.
    • 4, environment: toolchains.
    • 5, memory: Outline client, agent memory, scope memory.
    • 6, production: nisse-dev VM, secrets, delivery, browser.
    • 7: extract nisse-core, then nisse-ops.
  5. Every open issue mapped. #46, #61, #79 and #81 are superseded by the new loop (M2.3, M2.5): they're specific to control.py, so fixing them there would be thrown away.
  6. Old → new section table for M0.1, removed once references are updated.

Also in this PR (docs/Architecture.md): the status line now says agreed, and D7 regains the browser tool for nisse-dev (Playwright, internal test network only). The old B2 had it, and I left it out of the rewrite by mistake.

Points to decide:

  • The pre-approved / needs-discussion marking of each milestone.
  • Phase order: in particular, Phase 1 fixes run on the old loop first, so the Phase 2 switch-over lands on solid foundations; and production deployment comes at Phase 6, relying on the bring-up guards until then.

🤖 Generated with Claude Code

https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE

The build plan from the current code to the full architecture, for discussion, as `docs/Development-Plan.md`. It uses the format the architecture asks agents to use: milestones marked **pre-approved** or **needs discussion**. **Contents** 1. **Where we are:** a survey of `main` against every section of `docs/Architecture.md`, marked done / partial / none. Two structural gaps: state is a single row, not a work-items table (L1), and canonical events carry no work item or actor (L7, the root of #78). 2. **The environment today:** services, the 4090 host, models by role, bring-up setup. 3. **How we work:** plan-first per milestone (a quick confirmation for pre-approved ones, design discussion for the rest); tests; the Quint model moves with the loop; **a bring-up run on this box ends each phase**, with guards (unprivileged user, test resources only, structural gates kept on until Phase 3 proves the classifier). 4. **Phases:** - **0, housekeeping:** retire the old spec and update references; a bring-up script with an unprivileged user. - **1, foundations:** work items, transcript views, fresh workspace, publish hygiene, review intake. - **2, the conversational loop:** built alongside `control.py`, then retiring it. - **3, authority:** action classes, the classifier, permissions and the trust dial. - **4, environment:** toolchains. - **5, memory:** Outline client, agent memory, scope memory. - **6, production:** `nisse-dev` VM, secrets, delivery, browser. - **7:** extract `nisse-core`, then `nisse-ops`. 5. **Every open issue mapped.** #46, #61, #79 and #81 are superseded by the new loop (M2.3, M2.5): they're specific to `control.py`, so fixing them there would be thrown away. 6. **Old → new section table** for M0.1, removed once references are updated. **Also in this PR** (`docs/Architecture.md`): the status line now says agreed, and **D7 regains the browser tool** for `nisse-dev` (Playwright, internal test network only). The old B2 had it, and I left it out of the rewrite by mistake. **Points to decide:** - **The pre-approved / needs-discussion marking** of each milestone. - **Phase order:** in particular, Phase 1 fixes run on the old loop first, so the Phase 2 switch-over lands on solid foundations; and production deployment comes at Phase 6, relying on the bring-up guards until then. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
dev-agent added 1 commit 2026-09-30 19:47:19 +00:00
Propose the Development Plan, and mark the architecture agreed
CI / checks (push) Skipped
CI / checks (pull_request) Successful in 1m22s
f53b2777bc
docs/Development-Plan.md: where the code stands against each section of
docs/Architecture.md, the environment today, how we work (plan-first per
milestone, tests, the Quint model, a bring-up run on this box ending
each phase), and seven phases of milestones from housekeeping to
nisse-ops, each marked pre-approved or needs discussion. Every open
issue is mapped to a milestone or marked superseded; an old-to-new
section table serves the reference update in M0.1.

docs/Architecture.md: status now agreed; D7 regains the browser tool
for the internal test network, left out of the rewrite by mistake.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
Owner

You say that every issue opened will be superseeded, but only list 3. There are 18 issues open. Will all of them be superseeded?

You say that every issue opened will be superseeded, but only list 3. There are 18 issues open. Will all of them be superseeded?
Author
Collaborator

No, only 4 of them are superseded. My wording made it sound like more.

  • Superseded (4): #46, #61, #79, #81. They exist only because of control.py's state machine, so fixing them there would be thrown away. They'll be closed, pointing at M2.3 and M2.5, when the plan is agreed.
  • Land in a milestone (11), and stay open until it's done: #27, #33, #37, #42, #62, #65, #69, #70, #77, #78, #80.
  • Not yet scheduled (4), and stay open: #26, #28, #29, #30.

That's 19. §5 lists them all; the four older ones, #26–#30, are easy to miss. I've pushed a change that makes §5 say this outright, with a status column per issue.

No, only **4** of them are superseded. My wording made it sound like more. - **Superseded (4):** #46, #61, #79, #81. They exist only because of `control.py`'s state machine, so fixing them there would be thrown away. They'll be closed, pointing at M2.3 and M2.5, when the plan is agreed. - **Land in a milestone (11), and stay open until it's done:** #27, #33, #37, #42, #62, #65, #69, #70, #77, #78, #80. - **Not yet scheduled (4), and stay open:** #26, #28, #29, #30. That's 19. §5 lists them all; the four older ones, #26–#30, are easy to miss. I've pushed a change that makes §5 say this outright, with a status column per issue.
dev-agent added 1 commit 2026-09-30 21:06:14 +00:00
Development Plan: say which open issues are superseded, and which stay open
CI / checks (push) Skipped
CI / checks (pull_request) Successful in 1m15s
ae6513fd26
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
dongar approved these changes 2026-09-30 21:06:40 +00:00
dongar merged commit 890708594b into main 2026-09-30 21:07:40 +00:00
dongar deleted branch development-plan 2026-09-30 21:07:40 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dev/nisse#84