Update prose and generated design files that still name Boot #1686

Closed
opened 2026-11-11 07:04:40 +00:00 by jared · 1 comment
Owner

Problem

Live prose and generated files in os-sdlc still describe OsSdlc::Boot and the old "no .sdlc/project.yaml found" text.
The session deleted Boot and moved every command to Thor (OsSdlc::CLI, CLI::PipelineScript, OsSdlc::Hook).
A reader or an agent that follows this text looks for classes and messages that no longer exist.

Observed

lib/os_sdlc/boot.rb does not exist on main (commit 031244657).
These sites are stale; paths are from the repository root:

  1. docs/architecture/os-sdlc-profile.md:32 ("Entry points" section). It says bin and hook scripts "boot through OsSdlc::Boot (plugins/os-sdlc/lib/os_sdlc/boot.rb) ... command table (controller/boot/commands.rb)" and "bin/evidence does not use Boot".
  2. plugins/os-sdlc/skills/setup-project/SKILL.md:2 (frontmatter description). It says: Trigger on the "no .sdlc/project.yaml found" error.
    • The scripts and hooks now print no .sdlc/project.yaml at or above <dir> (lib/os_sdlc/cli/invocation.rb:43, lib/os_sdlc/hook.rb:62, lib/os_sdlc/system_model/cli.rb:87) and no .sdlc/project.yaml at <root>; no database to connect (lib/os_sdlc/project/unconfigured.rb:13).
    • Two sources still print the old text: lib/os_sdlc/project/root_search.rb:33 and lib/os_sdlc/lint/remediation.rb:6. The trigger must name both forms.
  3. plugins/os-sdlc/design/generated/* (tracked; last regenerated 2026-11-06, commit 8ac4f3052). These files name the deleted classes:
    • lib_os_sdlc_boot.c4 (69 mentions), lib_os_sdlc_boot_inputs.c4 (19), lib_os_sdlc.c4 (10), lib_os_sdlc_system_model.c4 (3), lib_os_sdlc_fast_gate_new_offense_report.c4 (1).
    • journeys/census_a_ruby_project.c4 (24), journeys/read_the_next_pipeline_instruction.c4 (15).
    • facts.json (371 mentions of Boot).
    • The files hold no OsSdlc::Hook or OsSdlc::CLI element, so they are older than the whole Thor move. system-model build writes them (lib/os_sdlc/system_model/writer.rb).
  4. docs/lint-lessons/analyses/sdlc-sequel-registry-outside-entry-point.md lines 88, 99, and 107. They still describe the deleted registry check and the boot paths (**/os_sdlc/boot.rb, **/os_sdlc/boot/**/*, "Boot is the entry layer", "#1381 replaced ... with the Boot entry layer"). Ruling 134 deleted that check.

Left out on purpose:

  • plugins/os-sdlc/lib/os_sdlc.rb:3 (# Boot (ADR-0166): every bin/ script and hook needs this pinned ...). ADR-0166 is titled "... loaded through one boot file". The comment names that boot file and not the deleted class, so it is still true.
  • ADR bodies, History rows in docs/implementation-status/, docs/crc/, docs/research/, docs/handoffs/, docs/system-design-format/, and plugins/os-sdlc/eval/ticket-takedown/cases and results. These are records.
  • plugins/os-sdlc/CLAUDE.md and .claude/rules/os-sdlc-architecture.md hold no Boot word on main.

Reproduce

grep -rnw Boot docs/architecture plugins/os-sdlc/skills plugins/os-sdlc/references plugins/os-sdlc/agents plugins/os-sdlc/lib plugins/os-sdlc/design

n/a for the setup-project trigger: run any os-sdlc-* script outside a project.

Approach

Edit the prose and regenerate the generated files.

Required work:

  1. Rewrite the "Entry points" paragraph of docs/architecture/os-sdlc-profile.md to describe Thor entries: OsSdlc::CLI, CLI::PipelineScript subclasses (one per bin/os-sdlc-* script), and OsSdlc::Hook (one method per hook script) — check: absent OsSdlc::Boot in docs/architecture/os-sdlc-profile.md
  2. Change the description trigger of setup-project to name the current messages: no .sdlc/project.yaml at or above and no .sdlc/project.yaml found — check: present at or above in plugins/os-sdlc/skills/setup-project/SKILL.md
  3. Regenerate plugins/os-sdlc/design/generated with system-model build — check: absent OsSdlc::Boot in plugins/os-sdlc/design/generated/facts.json

Non-goals (optional)

Rewording of ADR bodies and History rows.
Rewording the lib/os_sdlc.rb:3 comment.

Origin

  • Trigger: the session deleted Boot (commit b2187b6dc) and listed the stale text as follow-ups.
  • Improvised this session: none
  • Chain: prose names Boot ← the Thor move deleted the class but changed no prose outside plugins/os-sdlc/CLAUDE.md ← no check ties prose to class names
  • Root candidate: none found (ticket-skeptic)
  • Where: docs/architecture/os-sdlc-profile.md, plugins/os-sdlc/skills/setup-project/SKILL.md, plugins/os-sdlc/design/generated
  • Session: a48658d5-b566-40ce-8257-ebeabf56f7e1
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os-plugins-os-sdlc/a48658d5-b566-40ce-8257-ebeabf56f7e1.jsonl

VERDICT: CREATE
REASON: Live docs and the setup-project trigger name a class and a message that no longer exist; no open ticket covers it.

## Problem Live prose and generated files in os-sdlc still describe `OsSdlc::Boot` and the old "no .sdlc/project.yaml found" text. The session deleted `Boot` and moved every command to Thor (`OsSdlc::CLI`, `CLI::PipelineScript`, `OsSdlc::Hook`). A reader or an agent that follows this text looks for classes and messages that no longer exist. ## Observed `lib/os_sdlc/boot.rb` does not exist on `main` (commit `031244657`). These sites are stale; paths are from the repository root: 1. `docs/architecture/os-sdlc-profile.md:32` ("Entry points" section). It says bin and hook scripts "boot through `OsSdlc::Boot` (`plugins/os-sdlc/lib/os_sdlc/boot.rb`) ... command table (`controller/boot/commands.rb`)" and "`bin/evidence` does not use `Boot`". 2. `plugins/os-sdlc/skills/setup-project/SKILL.md:2` (frontmatter `description`). It says: `Trigger on the "no .sdlc/project.yaml found" error`. - The scripts and hooks now print `no .sdlc/project.yaml at or above <dir>` (`lib/os_sdlc/cli/invocation.rb:43`, `lib/os_sdlc/hook.rb:62`, `lib/os_sdlc/system_model/cli.rb:87`) and `no .sdlc/project.yaml at <root>; no database to connect` (`lib/os_sdlc/project/unconfigured.rb:13`). - Two sources still print the old text: `lib/os_sdlc/project/root_search.rb:33` and `lib/os_sdlc/lint/remediation.rb:6`. The trigger must name both forms. 3. `plugins/os-sdlc/design/generated/*` (tracked; last regenerated 2026-11-06, commit `8ac4f3052`). These files name the deleted classes: - `lib_os_sdlc_boot.c4` (69 mentions), `lib_os_sdlc_boot_inputs.c4` (19), `lib_os_sdlc.c4` (10), `lib_os_sdlc_system_model.c4` (3), `lib_os_sdlc_fast_gate_new_offense_report.c4` (1). - `journeys/census_a_ruby_project.c4` (24), `journeys/read_the_next_pipeline_instruction.c4` (15). - `facts.json` (371 mentions of `Boot`). - The files hold no `OsSdlc::Hook` or `OsSdlc::CLI` element, so they are older than the whole Thor move. `system-model build` writes them (`lib/os_sdlc/system_model/writer.rb`). 4. `docs/lint-lessons/analyses/sdlc-sequel-registry-outside-entry-point.md` lines 88, 99, and 107. They still describe the deleted registry check and the `boot` paths (`**/os_sdlc/boot.rb`, `**/os_sdlc/boot/**/*`, "Boot is the entry layer", "#1381 replaced ... with the Boot entry layer"). Ruling 134 deleted that check. Left out on purpose: - `plugins/os-sdlc/lib/os_sdlc.rb:3` (`# Boot (ADR-0166): every bin/ script and hook needs this pinned ...`). ADR-0166 is titled "... loaded through one boot file". The comment names that boot file and not the deleted class, so it is still true. - ADR bodies, History rows in `docs/implementation-status/`, `docs/crc/`, `docs/research/`, `docs/handoffs/`, `docs/system-design-format/`, and `plugins/os-sdlc/eval/ticket-takedown/cases` and `results`. These are records. - `plugins/os-sdlc/CLAUDE.md` and `.claude/rules/os-sdlc-architecture.md` hold no `Boot` word on `main`. ## Reproduce ``` grep -rnw Boot docs/architecture plugins/os-sdlc/skills plugins/os-sdlc/references plugins/os-sdlc/agents plugins/os-sdlc/lib plugins/os-sdlc/design ``` n/a for the setup-project trigger: run any `os-sdlc-*` script outside a project. ## Approach Edit the prose and regenerate the generated files. Required work: 1. Rewrite the "Entry points" paragraph of `docs/architecture/os-sdlc-profile.md` to describe Thor entries: `OsSdlc::CLI`, `CLI::PipelineScript` subclasses (one per `bin/os-sdlc-*` script), and `OsSdlc::Hook` (one method per hook script) — check: absent `OsSdlc::Boot` in `docs/architecture/os-sdlc-profile.md` 2. Change the `description` trigger of `setup-project` to name the current messages: `no .sdlc/project.yaml at or above` and `no .sdlc/project.yaml found` — check: present `at or above` in `plugins/os-sdlc/skills/setup-project/SKILL.md` 3. Regenerate `plugins/os-sdlc/design/generated` with `system-model build` — check: absent `OsSdlc::Boot` in `plugins/os-sdlc/design/generated/facts.json` ## Non-goals (optional) Rewording of ADR bodies and History rows. Rewording the `lib/os_sdlc.rb:3` comment. ## Origin - Trigger: the session deleted `Boot` (commit `b2187b6dc`) and listed the stale text as follow-ups. - Improvised this session: none - Chain: prose names `Boot` ← the Thor move deleted the class but changed no prose outside `plugins/os-sdlc/CLAUDE.md` ← no check ties prose to class names - Root candidate: none found (ticket-skeptic) - Where: docs/architecture/os-sdlc-profile.md, plugins/os-sdlc/skills/setup-project/SKILL.md, plugins/os-sdlc/design/generated - Session: a48658d5-b566-40ce-8257-ebeabf56f7e1 - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os-plugins-os-sdlc/a48658d5-b566-40ce-8257-ebeabf56f7e1.jsonl VERDICT: CREATE REASON: Live docs and the setup-project trigger name a class and a message that no longer exist; no open ticket covers it.
Author
Owner

Resolution

Done: The profile entry-points paragraph, the setup-project trigger text, and the lookup-by-id lesson analysis describe the Thor entries. design/generated was regenerated with 'bin/system-model build .'; facts.json has 0 Boot matches and the two boot .c4 files are gone.

Evidence: Commits 62f81fd06, 436737d85, ed32f37c0 on main. Suite: 5326 runs, 0 failures.

Follow-ups: Dropped: Boot remains as a sample string or history in docs/lint-lessons/analyses/sdlc-structural-exit-outside-entry-point.md:97, sdlc-structural-own-entry-point-spawned-in-test.md:113, and docs/plans/class-length-family/sdlc-cop-audit.md:49; these are examples and records. Dropped, reported to Jared: the directory table of docs/architecture/os-sdlc-profile.md (model/, pipeline/, controller/, adapter/, query/) names a layout that no longer exists; that is older than this work and belongs to a doc-hygiene check.

## Resolution **Done:** The profile entry-points paragraph, the setup-project trigger text, and the lookup-by-id lesson analysis describe the Thor entries. design/generated was regenerated with 'bin/system-model build .'; facts.json has 0 Boot matches and the two boot .c4 files are gone. **Evidence:** Commits 62f81fd06, 436737d85, ed32f37c0 on main. Suite: 5326 runs, 0 failures. **Follow-ups:** Dropped: Boot remains as a sample string or history in docs/lint-lessons/analyses/sdlc-structural-exit-outside-entry-point.md:97, sdlc-structural-own-entry-point-spawned-in-test.md:113, and docs/plans/class-length-family/sdlc-cop-audit.md:49; these are examples and records. Dropped, reported to Jared: the directory table of docs/architecture/os-sdlc-profile.md (model/, pipeline/, controller/, adapter/, query/) names a layout that no longer exists; that is older than this work and belongs to a doc-hygiene check. <!-- os-backlog kind: resolution -->
jared closed this issue 2026-11-12 18:28:14 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#1686
No description provided.