Skip to content

feat(docs/rules): autonomous-loop per-tick discipline canonicalized (3-surface converge)#3042

Merged
AceHack merged 5 commits into
mainfrom
feat/autonomous-loop-per-tick-pointer-3-surface-2026-05-13
May 13, 2026
Merged

feat(docs/rules): autonomous-loop per-tick discipline canonicalized (3-surface converge)#3042
AceHack merged 5 commits into
mainfrom
feat/autonomous-loop-per-tick-pointer-3-surface-2026-05-13

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 13, 2026

Summary

Aaron 2026-05-13 22:08Z: "any changes you need to make to it so it's more like the routines and like a 3 coordinated version?"

Factors the per-tick autonomous-loop discipline into a single canonical file all three Otto surfaces cite. Replaces 3 divergent copies with one source of truth.

Before / After

Surface Before After
Otto-CLI Ambient .claude/rules/* + CLAUDE.md (auto-loaded) Ambient + .claude/rules/autonomous-loop-per-tick-pointer.md cites canonical
Otto-Desktop routine Inline body in tools/routines/autonomous-loop/SKILL.md (manual sync risk) SKILL.md cites canonical; discipline body is one-line per step
B-0448 cloud (queued) TBD; would re-implement Will cite same canonical when shipped

Drift cost prevented: when holding-without-named-dependency rule landed today (2026-05-13), CLI picked it up via auto-load but Desktop routine had to mention it explicitly. After this PR, the discipline lives in ONE file; all 3 surfaces inherit at next fresh-session cold-boot.

Substrate

  • docs/AUTONOMOUS-LOOP-PER-TICK.md — canonical 7-step discipline (refresh → holding → pick-work → verify → shard → cron-check → visibility-stop) with rule pointers per step
  • .claude/rules/autonomous-loop-per-tick-pointer.md — auto-load rule pointing CLI cold-boot at the canonical
  • tools/routines/autonomous-loop/SKILL.md — body shrunk to 7-step summary + canonical pointer

Update protocol

When the per-tick discipline evolves:

  1. Land the new rule at .claude/rules/<name>.md (CLI picks up via auto-load)
  2. Update docs/AUTONOMOUS-LOOP-PER-TICK.md to reference the new rule
  3. Desktop + cloud inherit automatically at next fresh-session cold-boot

NO manual sync of routine SKILL.md bodies. NO drift.

Test plan

  • Markdown lint clean
  • Canonical file's rule-pointers all resolve (verified .claude/rules/* filenames match)
  • Routine SKILL.md still self-contained for cold-boot bootstrap (canonical pointer is fallback, not blocker)

🤖 Generated with Claude Code

…t docs/AUTONOMOUS-LOOP-PER-TICK.md (3-surface converge)

Aaron 2026-05-13 22:08Z: "any changes you need to make to it so it's more
like the routines and like a 3 coordinated version?"

Before this change, the per-tick discipline existed in 3 divergent forms:
- Otto-CLI: ambient `.claude/rules/*` + CLAUDE.md (auto-loaded)
- Otto-Desktop: inline body in `tools/routines/autonomous-loop/SKILL.md` (manual sync)
- B-0448 cloud routine: TBD; would have re-implemented

Drift cost: when the `holding-without-named-dependency` rule landed
2026-05-13, CLI picked it up via auto-load but Desktop routine had to
mention it explicitly. Two implementations of the same discipline.

Substrate:

- `docs/AUTONOMOUS-LOOP-PER-TICK.md` — canonical 7-step discipline
  (refresh → holding-discipline → pick-work → verify → shard →
  cron-check → visibility-stop) with rule-pointers per step
- `.claude/rules/autonomous-loop-per-tick-pointer.md` — auto-load
  rule pointing CLI cold-boot at the canonical
- `tools/routines/autonomous-loop/SKILL.md` — updated to cite the
  canonical instead of inlining; 7 steps summarized + pointer for full
- B-0448 cloud routine: will cite the same canonical when shipped

Update protocol: when the discipline evolves, update the canonical
file. All 3 surfaces inherit at next fresh-session cold-boot. No
manual sync.

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 13, 2026 22:19
@AceHack AceHack enabled auto-merge (squash) May 13, 2026 22:19
…to evidence

PR #3042 opens with canonical 7-step per-tick discipline at
docs/AUTONOMOUS-LOOP-PER-TICK.md. Parallel-Otto PR #3041 active in
another worktree answering same Aaron question (comm-channels). Branch-
creation failure mode documented for future-Otto.

Co-Authored-By: Claude <noreply@anthropic.com>
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: 6bf411e66e

ℹ️ 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 docs/AUTONOMOUS-LOOP-PER-TICK.md Outdated
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

Factors the per-tick autonomous-loop discipline into a single canonical file (docs/AUTONOMOUS-LOOP-PER-TICK.md) that all three Otto surfaces (CLI sentinel, Desktop routine, queued B-0448 cloud routine) cite, replacing three divergent inline copies with one source of truth to prevent drift when discipline rules evolve.

Changes:

  • New canonical 7-step per-tick discipline document with rule pointers for each step
  • New auto-loaded CLI rule pointing cold-boot at the canonical document
  • Routine SKILL.md body shrunk from inline discipline to 7-step summary + canonical pointer

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
docs/AUTONOMOUS-LOOP-PER-TICK.md New canonical 7-step per-tick discipline doc, target of all three surfaces
.claude/rules/autonomous-loop-per-tick-pointer.md New auto-loaded rule pointing CLI at the canonical doc with update protocol
tools/routines/autonomous-loop/SKILL.md Replaces inline discipline body with 7-step summary citing the canonical

Comment thread docs/AUTONOMOUS-LOOP-PER-TICK.md Outdated
AceHack and others added 2 commits May 13, 2026 18:22
…(Codex P1 + Copilot P1)

Two P1 findings on PR #3042:

1. Codex P1: Verify step in docs/AUTONOMOUS-LOOP-PER-TICK.md only required
   `dotnet build` + touched-file tests, omitting AGENTS.md-required
   `dotnet test Zeta.sln -c Release` + `dotnet format --verify-no-changes`.
   Because three autonomous surfaces converge on this canonical, the
   gates must be the FULL repo gates — otherwise loop can merge changes
   that pass local checks but fail broader tests/formatting. Tightened
   to full repo gate + explicit "fix-and-re-verify" instruction.

2. Copilot P1: Three current-state surfaces (docs/AUTONOMOUS-LOOP-PER-TICK.md,
   .claude/rules/autonomous-loop-per-tick-pointer.md, tools/routines/
   autonomous-loop/SKILL.md) used the human maintainer's first name in
   body prose. Per Otto-256 first-names-not-PII discipline, only closed-
   list history surfaces (memory/**, docs/research/**, docs/backlog/**,
   docs/hygiene-history/**, commit messages, PR bodies) carry direct
   first-name attribution. Current-state surfaces use the role-ref
   "the human maintainer". Replaced all 4 occurrences across the 3 files.

Co-Authored-By: Claude <noreply@anthropic.com>
… `+ ` list-marker false-positive

The 2219Z shard had a paragraph with two lines starting with `+ ` (as part
of describing a git command sequence). markdownlint-cli2 interpreted these
as list items embedded in a paragraph and emitted MD032/blanks-around-lists.
Restructured the paragraph to use "then" connectives instead of `+`; no
content meaning lost.

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 13, 2026 22:26
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

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

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: 7cac62eadf

ℹ️ 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 docs/AUTONOMOUS-LOOP-PER-TICK.md Outdated
…dex P2)

Codex P2: my phrasing "do NOT advance to step 5 (commit)" was wrong —
commit is the post-pass half of step 4 (verify + commit), step 5 is
shard-writing. Fixed to clarify: verify is the gating half of step 4,
commit is the post-pass half. Re-verify before committing.

Co-Authored-By: Claude <noreply@anthropic.com>
auto-merge was automatically disabled May 13, 2026 22:30

Pull Request is not mergeable

@AceHack AceHack merged commit c3aae99 into main May 13, 2026
25 checks passed
@AceHack AceHack deleted the feat/autonomous-loop-per-tick-pointer-3-surface-2026-05-13 branch May 13, 2026 22:34
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