cc-os/plugins/os-sdlc/reference/horizon.md

66 lines
4.3 KiB
Markdown
Raw Normal View History

# horizon
_Status: horizon — explicitly not being built yet; this doc exists to keep these OUT of v1 scope while preserving the design intent — as of 2026-07-16_
_Connects to: [pipeline-stages](pipeline-stages.md), [worktree-parallelism](worktree-parallelism.md), [never-ask-twice](never-ask-twice.md), [overview](../OVERVIEW.md)_
## Purpose
Parks the ideas that shaped the 2026-07-16 design session but are deliberately excluded
from v1, so they don't get silently reintroduced as scope creep and don't get lost either.
Load this when scoping any future os-sdlc milestone, or when a v1 stage's design seems to be
straining toward one of these — that strain is expected; the boundary is intentional.
## Design
- **Wake-on-trigger.** An issue state change (e.g. label added, ticket moved to "ready")
wakes the pipeline instead of a human running `/implement` manually. v1 is deliberately
manual — the factory is developed and iterated within interactive sessions until it's
trusted to run autonomously. Autonomy is earned the same way [never-ask-twice](never-ask-twice.md)
describes for individual decisions, applied here to the pipeline's own trigger.
- **Herdr integration** (https://herdr.dev/docs/, socket API at
https://herdr.dev/docs/socket-api/). A small deterministic controller — no LLM — opens
panes, starts interactive Claude Code sessions, sends stage prompts (send_keys-style),
detects completion, reads the result, and triggers the next stage. Rationale: Anthropic
now charges extra time allotment for headless runs, so driving automated coding through
headless mode would eat into the allotment the Max plan's coding was bought for; Herdr-driven
*interactive* sessions bill as normal usage instead, preserving that allotment for other
purposes (e.g. a future Hermes integration). **Load-bearing unknown to spike before leaning
on this at all: does the Herdr socket API give reliable "agent finished" detection, or only
heuristic pane-scraping?** If it's only heuristic scraping, completion-detection false
positives/negatives could silently corrupt pipeline stage transitions — this needs to be
proven, not assumed, before Herdr becomes load-bearing infrastructure.
- **Router agent** dispatching tickets to specialized pipelines (chore/bug/feature/hotfix,
each with a different stage shape). Deferred until v1's single pipeline shape is proven
insufficient — matches the ladder described in the SecondBrain vault taxonomy note; adding
a router before it's needed would be exactly the premature-granularity mistake
[pipeline-stages](pipeline-stages.md) already rejected once (the seam-creator/implementor
split).
- **Mobbin UX decision-tree seeding.** See [never-ask-twice](never-ask-twice.md) — a
pre-seeded convention library (mobbin.com) for the UI-flow decision category, letting
front-end decisions start at `semi` autonomy instead of `hitl`. Horizon because it depends
on the category-autonomy mechanism existing and being trusted first.
- **End-state vision** (verbatim intent from the user, 2026-07-16): plan alongside the AI in
one window; when ready, work is delegated, automatically prioritized, decomposed, and
worked until complete or blocked; blockages are resolved immediately AND minted into
ADRs/best practices/conventions so that next time the AI confidently picks the obvious path
or presents a narrowed choice; the factory self-improves over time and agents take agency
as confidence in their decisions is earned.
## Open questions
- Whether wake-on-trigger and Herdr integration are actually separable milestones (wake-on-trigger
could plausibly ship without Herdr, using headless mode at the accepted allotment cost) or
whether they're coupled in practice.
- What "trusted to run autonomously" concretely means as an exit criterion for v1 — likely an
ask-rate threshold fed by [never-ask-twice](never-ask-twice.md)'s audits, but not yet defined.
- Whether the router-agent ladder rungs (chore/bug/feature/hotfix) match the vault taxonomy
note's categories exactly or need adjustment once real ticket volume exists.
## Sources
- Herdr docs: https://herdr.dev/docs/, https://herdr.dev/docs/socket-api/
- SecondBrain vault: taxonomy/ladder note (chore/bug/feature/hotfix router categories)
- mobbin.com (design-pattern library)
- ADR-0037
- 2026-07-16 design session (this doc's origin, including verbatim end-state vision)