Skip to content

docs(adr): declared journeys as the priority anchor — the maintainer's ≤10 end-to-end paths, each with its runner, become the first triage question (maintainer 「立」) #18477

Description

@hotlong

Filed and dispatched by the director seat (summon #24, session_01Wj1HUjzyeiBQ8atRf1ZhaL) under the maintainer's ruling on the direct channel, 2026-09-16 ~14:5xZ: after 「我觉得一个创业项目核心应该放在怎么解决实际业务需求上,你再帮我综合评估我们最近的开发还有哪些跑偏了」, 「我们是一个开发平台,也是创业项目,用的人少,你也不会知道『谁今天撞上』」 and 「路的清单 是否建议重新讨论,专门立文档」 — reply to the ADR proposal, verbatim: 「立」. ⛔ No domain:* set by the filer; docs/adr/** is the governed face (domain:skills); the director dispatches directly.

Dedup terms: declared journeys · journey-anchored priority · 路的清单 · 黄金旅程 ADR · priority anchor

Why (director's readings, 2026-09-16)

Four repos, 1,166 merges since 09-02 (shallow floor): fix 36% · process/gates 30% · docs 16% · feature 8% · tests 6%. Of objectstack's 86 feat merges in 30 days, most are contract declarations, tombstones, refusals and gates; user-facing capability landed in the dozens, not hundreds. Meanwhile cloud's six P0s (three credential leaks, production signup broken 22 d, control plane unlaunchable 26 d, a 15 h outage) sit in waiting states, and hotcrm's one customer requirement line (REQ-0006) was blocked by a code-size ratchet. Queue: spec 88 · devx 57 vs engine 9 · services 1 · cli 3. The protocol's first triage question is 「违背了哪条契约」; with few users no pull reading exists, so the maintainer's own declared end-to-end paths are the anchor instead.

Deliverable — ONE ADR, draft, the maintainer edits by deletion

docs/adr/0136-declared-journeys-as-priority-anchor.md (take the next free number on the tree at claim time), in the repo's ADR shape (Status: Proposed, context / decision / consequences), short:

The journey table — ≤10 rows, drafted from existing sources, ⛔ nothing invented

One row per declared end-to-end path, five columns: who walks it (tenant admin / app author / AI app builder / platform operator) · entry → what the user sees when it is done · runner (the mechanical proof: a docs/qa/platform-checklist/ item id, a step of cloud scripts/dev-local/MAGIC-FLOW-TEST-RUNBOOK.md §7 「Test checkpoints」, a dogfood script, or none yet) · last reading (🟢/🔴 + date + the card if red) · source (ADR-0111 row, REQ number, epic card).

Sources to draft from, all on origin/main: cloud docs/adr/0111-hotcrm-hosted-saas-mvp-services-model.md acceptance rows 1.1–5.x; cloud scripts/dev-local/MAGIC-FLOW-TEST-RUNBOOK.md §7 (the golden-journey checkpoints); cloud#1521 (control plane launchable) and cloud#1653 (new-user workspace); hotcrm docs/requirements/0001–0006 (the REQ line, one row for 「a customer requirement lands end-to-end in HotCRM」); objectstack docs/qa/platform-checklist/ (areas + coverage.json) for the platform-side paths (author an app, install a package, AI builds an app from a prompt). Merge duplicates; if the honest count exceeds 10, keep the 10 with a runner and list the rest under 「未入选」 with one line each so the maintainer can swap.

The decision section — three rulings, stated as rules the PM protocol will cite

  1. Journey-anchored priority. Every triaged card names the journey it sits on (Journey: line). A journey broken or blocked ⇒ P0/P1. A journey that runs but produces a wrong result on a path it exercises (incl. an AI-authored app silently swallowed by the platform) ⇒ P2. On no declared journey ⇒ p3 or not_planned by default — a declared-but-unenforced key is retired in batches per release, ⛔ not one card per key. Security and data integrity never wait for a journey: always the top band.
  2. Cross-lane priority. While any product repo (cloud / hotcrm / objectui user-facing) has an unclaimed P0/P1 on a journey, no lane dispatches a p2/p3 contract-hygiene or tooling card. One sentence; the PM protocol's 取卡全序 cites it.
  3. The queue is fed by running the journeys. The runners are executed on a schedule (the existing checklist-test / dogfood-verification skills); a red journey files a card with its Journey: line. Contract sweeps and findings become background, graded against the journey list.

The ADR states in one line that it supersedes docs/adr/PRIORITIZATION.md (a 2026-06 ADR-status review, self-marked STALE) as the priority anchor; that file gains a one-line pointer, ⛔ not rewritten.

Consequences section

  • The list is the maintainer's appetite: the maintainer edits it by deletion and swap; a seat proposes a new row only with a runner attached. Ten is the cap.
  • The SKILL.md triage lines that implement rulings 1–3 are a separate skills-lane card filed after this ADR is accepted (⛔ not in this PR; the ADR is the law, the skill edit is the enforcement).

Acceptance

  • ≤10 rows, every row with a real source citation and either a runner path/id that exists on the tree or none yet; the dev's report lists the four source documents' row counts and how the table was reduced.
  • ADR file in the repo's shape; docs/adr/PRIORITIZATION.md +1 line pointer; nothing else touched.
  • Governed (docs/adr/**): draft PR, ## 维护者速读(草稿), four-piece by the director, the maintainer's approval lands it. The maintainer is expected to DELETE rows in review — the PR body says so.

Refs objectstack#18472 (gate census) · #18473 (asymmetry flip) · cloud#1521 · cloud#1653 · hotcrm docs/requirements/README.md


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions