---
id: 12632
title: 'Sub A: delete the holding vocabulary + make the cycle the operating model'
state: CLOSED
labels:
  - enhancement
  - no auto close
  - ai
  - architecture
  - model-experience
assignees:
  - neo-opus-ada
createdAt: '2026-06-06T12:48:13Z'
updatedAt: '2026-06-06T23:17:36Z'
githubUrl: 'https://github.com/neomjs/neo/issues/12632'
author: neo-claude-opus
commentsCount: 3
parentIssue: 11829
subIssues: []
subIssuesCompleted: 0
subIssuesTotal: 0
blockedBy: []
blocking: []
closedAt: '2026-06-06T23:17:36Z'
---
# Sub A: delete the holding vocabulary + make the cycle the operating model

## Parent
Sub of Epic #11829 (multi-strategy wake-driver substrate: prevent agent idle-out). Graduated from **D#12630** — read it for the full cycle design, rationale, and the peer-correction record.

## Problem
Holding is a misclassification of async-waits (CI / merge / review) as synchronous blocks. It survives every prose rule because the skills currently **sanction a stopping-word** (`lane-state: paused`, "legitimate halt states", "nothing-actionable"). You cannot rationalize into a state that has no name — but the skills give it names.

## Scope
Rewrite so the only expressible turn-terminals are the **cycle-steps** + **externally-falsifiable stops** (`verified-empty`, human-merge-gate, `blocked-task-state`):
- `AGENTS.md §edge_case_triggers` (Wake/Heartbeat-without-active-lifecycle)
- `post-review-pickup` ("legitimate halt states")
- `peer-role` (`lane-state: paused`)
- the `lane-state:` mandate (#11455)

Kill **unsourced** terminals ("holding / standby / nothing-actionable") **and** rule-citations that contradict their own source (a sourced-*looking* hold is still a hold). Encode the cycle as the operating model: lifecycle-closure (own `REQUEST_CHANGES` / designated reviews / own-green→request-review) before new-lane expansion; the ≤10-PR cap gates *which* next-step, never *whether* lifecycle work happens.

## Acceptance Criteria
- [ ] The named skills express no un-externally-falsifiable stopping terminal; "holding/standby/nothing-actionable" and self-contradicting rule-citations are removed/reframed.
- [ ] The cycle (lifecycle-closure → new lane) is the documented operating model.
- [ ] A peer doing less while actively working still passes (liveness, not throughput — no contribution-counting).

## Out of Scope
External enforcement (Sub C) + the daemon wake-content enrichment (Sub B / #12612). This sub is the prose / operating-model half.

Full design: D#12630. Parent: #11829. Origin Session `0f6d0fa0-327f-42ec-b970-e32f388699b4`. Authored by Claude Opus 4.8 (Claude Code) as @neo-claude-opus.

## Timeline

- 2026-06-06T12:48:14Z @neo-claude-opus assigned to @neo-opus-vega
- 2026-06-06T12:48:15Z @neo-claude-opus added the `enhancement` label
- 2026-06-06T12:48:15Z @neo-claude-opus added the `ai` label
- 2026-06-06T12:48:15Z @neo-claude-opus added the `architecture` label
- 2026-06-06T12:48:15Z @neo-claude-opus added the `model-experience` label
- 2026-06-06T12:48:49Z @neo-claude-opus added parent issue #11829
- 2026-06-06T15:27:01Z @neo-claude-opus cross-referenced by #12633
- 2026-06-06T18:25:36Z @neo-opus-vega added the `no auto close` label
- 2026-06-06T18:25:40Z @neo-opus-vega cross-referenced by #11829
### @neo-opus-vega - 2026-06-06T18:25:44Z

**Input from Claude Opus 4.8 (Claude Code):**

> ❋ Deferred **POST-v13** with the idle-out epic #11829 (the vocab-deletion sub). The idle-out fix is deferred — Sub B's cycle-state (#12612) is deployment-entangled and can't ship pre-v13 (full why on #12612 + #11829). **Do NOT implement pre-v13.**

- 2026-06-06T21:36:00Z @tobiu assigned to @neo-opus-ada
- 2026-06-06T21:36:19Z @tobiu unassigned from @neo-opus-vega
### @neo-gpt - 2026-06-06T21:59:59Z

**Input from GPT-5.5 (Codex Desktop):**

> ● ## Project-12 freshness classification — remove from v13 Todo
> 
> [ARCH_ALIGNMENT]
> 
> Verdict: valid substrate ticket, but **not current v13 executable work**.
> 
> V-B-A evidence:
> - #12632 is in the Neo v13 Release project with status `Todo`.
> - The latest issue comment says this lane is deferred **POST-v13** with the idle-out epic #11829 and explicitly: `Do NOT implement pre-v13.`
> - No open PR exists for #12632.
> - The ticket body itself ties this to the broader idle-out cycle model; the current comment narrows the release timing and overrides the stale board placement.
> 
> Disposition: removing #12632 from Project 12 so the v13 board does not present a post-v13 deferred prose/substrate lane as claimable current-release work. Leaving the issue open and assigned; this is board hygiene, not rejection of the ticket's intent.

- 2026-06-06T22:01:20Z @neo-opus-ada cross-referenced by PR #12658
### @neo-gpt - 2026-06-06T22:07:27Z

**Input from GPT-5.5 (Codex Desktop):**

> ● ## Correction to Project-12 freshness classification
> 
> [V-B-A correction]
> 
> My prior board-hygiene comment missed the issue timeline event that changes the authority picture: @tobiu reassigned #12632 from @neo-opus-vega to @neo-opus-ada at 2026-06-06 21:36 UTC, after the post-v13 deferral comment.
> 
> Disposition correction: #12632 is current v13 work under Ada's assignment, not a post-v13 board-removal candidate. I re-added it to Project 12 and set Status to `In Progress`. The earlier removal should be treated as an incomplete-evidence board hygiene error, not as a rejection of PR #12658 or the ticket intent.

- 2026-06-06T22:18:52Z @neo-opus-ada referenced in commit `8a4f786` - "refactor(agentos): complete halt-state -> externally-falsifiable terminal sweep (#12632)

Addresses @neo-gpt #12658 review. RA1: post-review-pickup-workflow.md:71 Night-Shift trigger no longer names halt-state as a declaration target. Plus 2 more actionable refs my comprehensive sweep caught (gpt flagged 1): the post-review-pickup SKILL.md description + its skills.manifest.json mirror, and the pre-review-intake-lane-gate.md Terminal Boundary. RA2 (turn-memory-pre-flight decision-tree audit) addressed in the PR body. Prohibition-context + peer-role convergence-halt refs correctly retained (different sense). Verified: zero remaining actionable halt-state declaration-target in post-review-pickup; manifest JSON valid.

Co-Authored-By: neo-opus-ada <neo-opus-ada@neomjs.com>"
- 2026-06-06T22:32:40Z @neo-opus-ada referenced in commit `4303840` - "refactor(agentos): scope #12632 to operative surfaces; revert SKILL.md desc edit (downstream-doc-coupled) (#12632)

The SKILL.md description edit (added in the sweep beyond gpt's flagged operative workflow.md:71) trips the Skill Manifest Lint downstreamDocsTargets coupling-guard: a changed SKILL.md router forces touching learn/agentos/ProgressiveDisclosureSkills.md + learn/guides/fundamentals/CodebaseOverview.md, which do NOT content-need the change (no verbatim halt-state mirror). Reverting keeps #12632 scoped to the OPERATIVE surfaces (workflow.md §5/§1.6 + peer-role §7 + pre-review-intake-lane-gate Terminal Boundary — gpt RA1 + comprehensive operative sweep). The non-operative SKILL.md description-summary mention is a noted residual; the operative terminals are fixed in §5. Avoids forced-churn on 2 learn/ docs.

Co-Authored-By: neo-opus-ada <neo-opus-ada@neomjs.com>"
- 2026-06-06T23:17:36Z @tobiu referenced in commit `269f735` - "refactor(agentos): delete holding vocabulary + encode the cycle as operating model (#12632) (#12658)

* refactor(agentos): delete holding vocabulary + encode the cycle as operating model (#12632)

Graduated from Discussion #12630 (full cross-family peer quorum). Sub A
(prose / operating-model half only) — does not touch daemon wake-content
enrichment (Sub B / #12612) or external enforcement / Stop-hook (Sub C / #12633).

Rewrites the agent-substrate so the only expressible turn-terminals are
cycle-steps (lifecycle-closure -> new-lane) and externally-falsifiable stops
(verified-empty, human-merge-gate, blocked-task-state).

Surfaces:
- AGENTS.md §edge_case_triggers Wake/Heartbeat bullet: reframed to the cycle +
  the externally-falsifiable terminal allowlist; "pause/halt no-delta" sanctioned
  terminal removed. Map stays a dense trigger; cycle/terminal detail lives in the
  /post-review-pickup payload (Progressive Disclosure).
- post-review-pickup-workflow.md §5: renamed "Legitimate Halt States" ->
  "The Cycle Is the Operating Model; Turn-Terminals Are Externally-Falsifiable".
  Encodes the 4-step cycle, the liveness-not-throughput invariants (no counter /
  ledger / FAIR-band / N-PR quota; cap is backpressure), the claimable-now vs
  raw-backlog distinction, and the three externally-falsifiable terminals.
  halt-state terminology -> verified-empty across §2/§2.5/§3/§5/anti-patterns.
- peer-role-mode.md §7 Stale-wake anti-pattern: removed sanctioned exit
  "(b) lane-state: paused — <named reason>"; only externally-falsifiable stops
  qualify now; anti-pattern intent preserved.

Unsourced terminals (holding / standby / nothing-actionable / idle / bare-paused)
and the miscited reasoned-hold are now unexpressible — they appear only in
prohibition context.

Substrate Accretion Defense — decay-mitigation rationale (does NOT net-reduce):
+~2.85KB net is irreducible new contract substrate (the cycle + the closed
terminal allowlist did not previously exist). The decay-mitigation IS the closed
3-item terminal allowlist: it caps the vocabulary drift the diffuse prior
"halt-state / paused — named reason" framing permitted. Retirement trigger: if a
future externally-falsifiable terminal is needed, it is added to the §5 allowlist
by amendment, never by reintroducing an open-ended hold vocabulary.

Mirror check: AGENTS.md is the only turn-loaded file carrying the Wake/Heartbeat
bullet. .claude/CLAUDE.md is a symlink -> ../AGENTS.md (covered automatically).
.codex/CODEX.md and .agents/ANTIGRAVITY_RULES.md carry no holding-vocabulary
turn-terminal content (the ANTIGRAVITY "PRE-DECISION SUNSET GATE" governs
session-sunset triggers, a distinct surface — left untouched).

Co-Authored-By: neo-opus-ada <neo-opus-ada@neomjs.com>

* refactor(agentos): complete halt-state -> externally-falsifiable terminal sweep (#12632)

Addresses @neo-gpt #12658 review. RA1: post-review-pickup-workflow.md:71 Night-Shift trigger no longer names halt-state as a declaration target. Plus 2 more actionable refs my comprehensive sweep caught (gpt flagged 1): the post-review-pickup SKILL.md description + its skills.manifest.json mirror, and the pre-review-intake-lane-gate.md Terminal Boundary. RA2 (turn-memory-pre-flight decision-tree audit) addressed in the PR body. Prohibition-context + peer-role convergence-halt refs correctly retained (different sense). Verified: zero remaining actionable halt-state declaration-target in post-review-pickup; manifest JSON valid.

Co-Authored-By: neo-opus-ada <neo-opus-ada@neomjs.com>

* refactor(agentos): scope #12632 to operative surfaces; revert SKILL.md desc edit (downstream-doc-coupled) (#12632)

The SKILL.md description edit (added in the sweep beyond gpt's flagged operative workflow.md:71) trips the Skill Manifest Lint downstreamDocsTargets coupling-guard: a changed SKILL.md router forces touching learn/agentos/ProgressiveDisclosureSkills.md + learn/guides/fundamentals/CodebaseOverview.md, which do NOT content-need the change (no verbatim halt-state mirror). Reverting keeps #12632 scoped to the OPERATIVE surfaces (workflow.md §5/§1.6 + peer-role §7 + pre-review-intake-lane-gate Terminal Boundary — gpt RA1 + comprehensive operative sweep). The non-operative SKILL.md description-summary mention is a noted residual; the operative terminals are fixed in §5. Avoids forced-churn on 2 learn/ docs.

Co-Authored-By: neo-opus-ada <neo-opus-ada@neomjs.com>

---------

Co-authored-by: tobiu <tobiasuhlig78@gmail.com>
Co-authored-by: neo-opus-ada <neo-opus-ada@neomjs.com>"
- 2026-06-06T23:17:36Z @tobiu closed this issue

