Skip to content

tools(cold-start-check): executable big-picture-first checklist (B-0117)#1188

Merged
AceHack merged 3 commits intomainfrom
tools/cold-start-check-b-0117-2026-05-02
May 2, 2026
Merged

tools(cold-start-check): executable big-picture-first checklist (B-0117)#1188
AceHack merged 3 commits intomainfrom
tools/cold-start-check-b-0117-2026-05-02

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 2, 2026

Summary

Operationalizes the cold-start big-picture-first rule (memory/feedback_cold_start_big_picture_first_not_prompt_first_aaron_2026_04_30.md). Same prose-rule → executable-tool pattern that produced tools/github/poll-pr-gate.ts from the poll-the-gate rule.

bun tools/cold-start-check.ts prints the current big-picture state across the 8 cold-start steps. Designed for one-screen ingestion (~30-50 lines), not ongoing-session reference.

Origin

Ani peer review 2026-04-30: "Cold-start big-picture-first is excellent — consider making the 8-step checklist executable. Right now it's prose. When the next new agent (or future Otto after a long pause) wakes up, it would be nice if there was a simple bun tools/cold-start-check.ts or similar that prints the current big-picture state."

Deepseek peer review 2026-04-30 reinforcement: "Ani's 'cold-start executable tool' recommendation (item 2) was noted as 'Backlog candidate' but no B-NNNN was filed. This is the deferred-skill anti-pattern."

Filed as B-0117 to close the substrate-or-it-didn't-happen gap.

Steps surfaced

# Source What
1 memory/feedback_zeta_ultimate_scope_intellectual_backup_of_earth_*.md Mission scope
2 memory/feedback_substrate_is_product_four_products_*.md Products in flight
3 memory/feedback_internal_direction_from_project_survival_*.md Internal direction
4 docs/WONT-DO.md Authority scope
5 CLAUDE.md Operating disciplines
6 git log --oneline -5 + branch Current trajectory
7 ~/.claude/projects/*/memory/CURRENT-*.md Maintainer CURRENT files
8 (footer) Then read the prompt

Modes

  • Human-readable (default): formatted output for fresh-Otto cold-start ingestion
  • JSON (--json): structured output for programmatic consumption
  • Offline (--no-git): skip git log + trajectory step (read-only contexts)

Verification

  • TypeScript-clean (bunx tsc --noEmit -p tsconfig.json passes)
  • Smoke-test on macOS — output is ~40 lines, fits one screen
  • JSON mode emits valid JSON
  • Headlines correctly extracted from frontmatter-stripped markdown
  • User-scope CURRENT-*.md discovery works (finds 3 files: aaron, amara, ani)
  • Cross-shell verification (Otto-235 four-shell target) — Bun is cross-platform but only smoke-tested on macOS here; deferred to follow-up

Acceptance criteria from B-0117

  • bun tools/cold-start-check.ts runs and prints all 8 steps
  • Output terse (single screen)
  • Sources of truth verifiable
  • Fresh-Otto can read and know what to ground in
  • Documented in tools/cold-start-check.md
  • Tested on four-shell target (deferred follow-up)

Closes

  • B-0117 — cold-start checklist executable (mostly; cross-shell verification deferred)

🤖 Generated with Claude Code

AceHack added 2 commits May 1, 2026 20:41
…n tick — Aaron rest signal

Refresh-and-stop tick. Aaron signaled "i'm going to rest" after
Claude.ai (separate Anthropic instance) held the line cleanly
on AI-peer-not-equal-in-fatigue-grading and Aaron caught his
own pedantic framing. Tick body is operational record only;
substrate-class promotion of the exchange held for cooler
grading per cooling-period razor + maintainer-rest signal.

Cron 98fc7424 alive. PR queue (#1083 / #1181 / #1182 / #1183)
BLOCKED on non-required lint+threads, no autonomous fixes
during rest period.
…klist (B-0117)

Operationalizes the cold-start big-picture-first rule
(memory/feedback_cold_start_big_picture_first_not_prompt_first_aaron_2026_04_30.md).
Same prose-rule → executable-tool pattern that produced
tools/github/poll-pr-gate.ts from the poll-the-gate rule.

`bun tools/cold-start-check.ts` prints 8 steps:

  1. Mission scope (intellectual-backup-of-earth)
  2. Products in flight (factory substrate / package manager /
     database / Aurora)
  3. Internal direction (project-survival)
  4. Authority scope (WONT-DO)
  5. Operating disciplines (CLAUDE.md headline)
  6. Current trajectory (branch + last 5 commits)
  7. Maintainer CURRENT-*.md files in user-scope memory
  8. Then prompt — read the user's prompt and proceed downstream

Modes: human-readable (default), JSON (`--json`), offline (`--no-git`).
TypeScript-clean (`tsc --noEmit -p tsconfig.json` passes).

Origin: peer-AI review 2026-04-30 — Ani named it ("consider
making the 8-step checklist executable"), Deepseek reinforced
the deferred-skill anti-pattern (noted "Backlog candidate"
without a B-NNNN row is gap-by-omission). Filed as B-0117 to
close the gap. Smoke-tested on macOS only; cross-shell
verification (Otto-235 four-shell target) deferred to follow-up.

Closes B-0117.
Copilot AI review requested due to automatic review settings May 2, 2026 01:04
@AceHack AceHack enabled auto-merge (squash) May 2, 2026 01:04
Comment thread tools/cold-start-check.ts Fixed
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b374ee9ab3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/cold-start-check.ts Outdated
Comment thread tools/cold-start-check.ts
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a Bun/TypeScript tooling entrypoint to operationalize the “cold-start big-picture-first” checklist as an executable report, plus documentation and a tick-history shard recording the work.

Changes:

  • Added tools/cold-start-check.ts to print an 8-step cold-start “big-picture state” (human-readable + JSON, optional --no-git).
  • Added tools/cold-start-check.md documenting usage, modes, and surfaced steps.
  • Added a tick-history shard entry under docs/hygiene-history/ticks/2026/05/02/.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 15 comments.

File Description
tools/cold-start-check.ts New executable tool that reads key source-of-truth files and prints a cold-start checklist report.
tools/cold-start-check.md Usage + rationale documentation for the new cold-start tool.
docs/hygiene-history/ticks/2026/05/02/0040Z.md New tick-history shard entry for 2026-05-02 00:40Z.

Comment thread tools/cold-start-check.ts Outdated
Comment thread tools/cold-start-check.ts Outdated
Comment thread tools/cold-start-check.ts Outdated
Comment thread tools/cold-start-check.md Outdated
Comment thread tools/cold-start-check.ts Outdated
Comment thread tools/cold-start-check.ts Outdated
Comment thread tools/cold-start-check.ts
Comment thread tools/cold-start-check.ts Outdated
Comment thread tools/cold-start-check.ts
Comment thread tools/cold-start-check.ts Outdated
AceHack added a commit that referenced this pull request May 2, 2026
… through Aaron's rest period (#1192)

Session-summary tick documenting the autonomous-loop work
landed/in-flight while Aaron rested. Aaron's rest-period
authorization 2026-05-02 ~00:42Z flipped the framing from
cooling-period minimum-action to substantive grinding:
"Ticks that fire while you rest will be you can go hard, you
don't have to do minimum action :)" + "really look at the
backlog, there is just a crazy amount" + "you are authorzed
to work on whatever you want the lane splits we just already
agreed with each other would speed up all future work".

Eight substantive PRs:
  #1184 MERGED — tick-history shard (cooling-period close)
  #1185 MERGED — B-0125 CI lane-split (gate.yml path-filter
                 skips F#/dotnet build steps on docs-only PRs)
  #1186 MERGED — gate.yml=immune-system Aaron-recognition +
                 Claude.ai-engagement verbatim preservation
  #1187 MERGED — B-0070 orphan role-ref + un-stripped-name-
                 attribution lint (tools/hygiene/audit-*.sh)
  #1188 OPEN   — B-0117 cold-start-check.ts executable
  #1189 OPEN   — B-0144 doc/code two-lane protocol docs
  #1190 OPEN   — B-0144 lane allocator scripts
  #1191 OPEN   — backlog closure bookkeeping (B-0125, B-0070,
                 B-0117, B-0144 marked closed)

The F# CI lane-split is now LIVE on main — all future docs-
only PRs skip ~5-10min of F# build per OS-leg, compounding
across the queue.

Substrate-class promotion of the carved sentence "gate.yml IS
the immune system at code-substrate layer" held per cooling-
period razor; verbatim preservation immediate per the queue/
promotion split + Aaron's "if you dont write it anywhere
you'll just compress and forget" instruction.
Seven findings from Codex + Copilot + github-code-quality on PR
#1188 addressed:

1. **ESM `__filename` →`fileURLToPath(import.meta.url)`**
   (Copilot). Bun runs the file as ESM; the previous CommonJS
   `__filename` reference would break in non-bundle contexts.
   Now uses the canonical ESM self-path pattern.

2. **`--no-git` actually prevents git invocations** (Copilot).
   Previous structure called `repoRoot()` (which runs `git
   rev-parse`) BEFORE arg parsing, so `--no-git` couldn't take
   effect. Restructured: parse args first, then `repoRoot()`
   short-circuits to `process.cwd()` when args.noGit is set.

3. **Surface git command failures in default mode** (Codex P2).
   Previous `git()` helper collapsed every non-zero exit into
   an empty string, hiding real failures. Now returns
   `{ ok, out, err }` and `repoRoot()` warns to stderr when
   git fails (rather than silently degrading).

4. **All 8 steps in JSON output** (Codex P2). Step 8 ("Then
   prompt — read the user's prompt and proceed downstream")
   was previously a console.log footer in human-readable mode
   only. Now it's a proper Step entry in the steps array, so
   `--json` output includes it. Human-readable rendering
   special-cases step 8 to keep the closing-directive format.

5. **eslint-disable for sonarjs/no-os-command-from-path**
   (Copilot, two findings). Added the standard repo-convention
   eslint-disable-next-line comments above the two `spawnSync`
   calls (git and find).

6. **Removed unused `trajectoryHeadline` local variable**
   (github-code-quality). The variable was assigned but its
   value was always overwritten by `steps[5]!.headline = ...`
   in the same block. Dropped the local; assigned directly to
   the step.

7. **Stripped persona-name attribution from
   `tools/cold-start-check.md`** (Copilot). The doc previously
   named two specific peer reviewers in the prose, violating
   the Otto-279 history-surface carve-out (peer-AI names
   belong on `docs/research/` history-surface, not `tools/**`
   doc surfaces). Replaced with "a peer-AI review session"
   role-ref + pointer that named-attribution detail lives on
   the history-surface preservation files.

Smoke-tested: default / --no-git / --json modes all work
correctly. TypeScript-clean (`bunx tsc --noEmit` passes).

Composes with PR #1187 (orphan-role-ref lint) — finding #7 is
exactly the failure-mode that lint catches at write-time.
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

AceHack added a commit that referenced this pull request May 2, 2026
Two findings from Codex P2 + Copilot on PR #1191 addressed:

1. **Quote `closed_by` PR-reference values** (Copilot, four
   instances). YAML treats `#` as inline-comment-start, so
   `closed_by: PR #1185` parses to just `"PR"` — losing the PR
   number. Quoted all four:

     closed_by: "PR #1185"           (B-0125)
     closed_by: "PR #1187"           (B-0070)
     closed_by: "PR #1188"           (B-0117)
     closed_by: "PR #1189 + PR #1190" (B-0144)

   Verified with `python3 -c "import yaml; yaml.safe_load(...)"`:
   all four files now parse with `closed_by` preserved correctly.

2. **Move B-0117's closure note OUT of frontmatter** (Codex P2 +
   Copilot). The blockquote `> **Closed ...**` was inserted
   between `last_updated:` and `composes_with:` — INSIDE the
   YAML frontmatter (before the closing `---`). That broke the
   frontmatter parse. Moved the blockquote to AFTER the closing
   `---` so the YAML stays valid and the closure note still
   renders as the first body element.

   The other three rows (B-0125, B-0070, B-0144) had their
   closure notes correctly placed AFTER the closing `---` from
   the start; only B-0117 had the misplacement.
@AceHack AceHack merged commit b68bc51 into main May 2, 2026
25 checks passed
@AceHack AceHack deleted the tools/cold-start-check-b-0117-2026-05-02 branch May 2, 2026 01:24
AceHack added a commit that referenced this pull request May 2, 2026
…026-05-02) (#1191)

* backlog: close B-0125 + B-0070 + B-0117 + B-0144 (landed 2026-05-02 overnight session)

Bookkeeping pass marking four backlog rows as closed by the
PRs that landed in this autonomous-loop session arc:

  B-0125 — skip F#/dotnet build on docs-only PRs (PR #1185)
  B-0070 — orphan role-ref detector lint (PR #1187)
  B-0117 — cold-start-check.ts executable checklist (PR #1188)
  B-0144 — doc/code two-lane parallel-split protocol (PR #1189 + #1190)

Each row's frontmatter gets `status: closed`, `closed: 2026-05-02`,
`closed_by: PR #NNNN`. A closure note in the body documents what
shipped and what (if anything) remains as open-ended follow-up:

- B-0125: closed completely. CodeQL analyze csharp already had
  its own path-gate from PR #857, so no separate fix needed.
- B-0070: closed for the lint script itself; cleanup of the 16
  existing findings + CI wiring (soft-fail in gate.yml) deferred.
- B-0117: closed for the implementation. Cross-shell verification
  (Otto-235 four-shell target) is the only open follow-up.
- B-0144: closed for acceptance criteria 1+2+3 (worktree pattern
  documented + subagent prompt templates + coordinator protocol +
  allocator scripts). Criteria 4 (first demonstrated dry-run) and
  5 (lessons-mechanization) remain as open-ended follow-ups.

`docs/BACKLOG.md` regenerated via
`BACKLOG_WRITE_FORCE=1 bash tools/backlog/generate-index.sh`.
The rows now appear as `[x]` checkboxes in the index.

* fix(backlog): YAML quoting + frontmatter scope on PR #1191 closure rows

Two findings from Codex P2 + Copilot on PR #1191 addressed:

1. **Quote `closed_by` PR-reference values** (Copilot, four
   instances). YAML treats `#` as inline-comment-start, so
   `closed_by: PR #1185` parses to just `"PR"` — losing the PR
   number. Quoted all four:

     closed_by: "PR #1185"           (B-0125)
     closed_by: "PR #1187"           (B-0070)
     closed_by: "PR #1188"           (B-0117)
     closed_by: "PR #1189 + PR #1190" (B-0144)

   Verified with `python3 -c "import yaml; yaml.safe_load(...)"`:
   all four files now parse with `closed_by` preserved correctly.

2. **Move B-0117's closure note OUT of frontmatter** (Codex P2 +
   Copilot). The blockquote `> **Closed ...**` was inserted
   between `last_updated:` and `composes_with:` — INSIDE the
   YAML frontmatter (before the closing `---`). That broke the
   frontmatter parse. Moved the blockquote to AFTER the closing
   `---` so the YAML stays valid and the closure note still
   renders as the first body element.

   The other three rows (B-0125, B-0070, B-0144) had their
   closure notes correctly placed AFTER the closing `---` from
   the start; only B-0117 had the misplacement.
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.

2 participants