v0.1.6: sync 2026-10-03..10-15 core corpus — kanban practice fully retired (#5745), review-artifact schema validation wiring (#5656 N-04/N-06), review-code batching (#4386) + worktree codegraph preamble (#4187), gitea adapter slimming, roles yaml first-line fix (octopus main-repo commits 86047c51d..de16e8704)
This commit is contained in:
@@ -41,11 +41,6 @@ in `_shared/gitea-write-patterns.md`.
|
||||
|
||||
**Orchestrator actions**:
|
||||
|
||||
0. **Move the source issue to the `review` column** on the Pipeline Stages
|
||||
board per `_shared/gitea-write-patterns.md` Pattern 7.5. Skip if no
|
||||
source issue exists. The review stage is a single board column covering
|
||||
all review targets (DAG single gate / code review / audit-process).
|
||||
|
||||
0.5. **Initialize the review-status file** (round 1 only). The Orchestrator
|
||||
creates `<runs-root>/{slug}/reviews/{stage}/status.json` before dispatching
|
||||
round 1, with the full schema-required field set
|
||||
@@ -111,6 +106,13 @@ in `_shared/gitea-write-patterns.md`.
|
||||
`core/skills/_shared/review-orchestrator-rules.md` — Default
|
||||
Explorer Permissions).
|
||||
- Temperature: 0.1 (deterministic output).
|
||||
- StructuredOutput mount ([org-internal #5658]): pass `format: { type:
|
||||
"json_schema", schema: <the reviewer-output.schema.json contents you
|
||||
read at prompt build time> }` on the task dispatch — the reviewer's
|
||||
final emission is schema-enforced (malformed verdict/severity/summary
|
||||
args are rejected with field-path repair feedback inside the reviewer's
|
||||
own loop). The findings FILE remains the canonical Tier-1 artifact; the
|
||||
structured output mirrors it as a self-check.
|
||||
|
||||
4. Wait for all {REVIEWER_OR_AUDITOR}s to complete. Each reviewer writes its
|
||||
dimension result to the skill's configured findings sink:
|
||||
@@ -171,6 +173,11 @@ in `_shared/gitea-write-patterns.md`.
|
||||
`tier1-local` skills; `/tmp/octopus/...` for `tier2-comment` skills)
|
||||
- `permissions`: read + write + edit + bash + glob + grep (all allow)
|
||||
- `temperature`: 0.1
|
||||
- `format` ([org-internal #5658]): `{ type: "json_schema", schema: <the
|
||||
synthesis.schema.json contents you read> }` — the Synthesizer's final
|
||||
emission is schema-enforced (malformed verdict/dimension args rejected
|
||||
with field-path repair feedback in-loop). The posted fenced JSON block
|
||||
remains the canonical artifact; the structured output mirrors it.
|
||||
- Foreground (the Orchestrator waits for completion).
|
||||
|
||||
3. The Synthesizer:
|
||||
|
||||
@@ -32,6 +32,18 @@ Label: {DIMENSION_NAME}
|
||||
|
||||
## Instructions
|
||||
|
||||
### Gate records are deterministic inputs ([org-internal #5656] N-04)
|
||||
|
||||
When the work item carries gate records (`gate` tool results — metadata
|
||||
`exit_code`, `duration_ms`, `ci_run_id`), those records ARE the command
|
||||
outcomes for mechanical questions (tests/typecheck/lint): cite the exit code
|
||||
verbatim (`gate <id> (<tier>): exit_code=<n> -> green|red` — canonical block
|
||||
in `packages/octopus/src/gate/consume.ts`) and never substitute a model's
|
||||
narration of command output. A claim that disagrees with a record's
|
||||
exit_code is a finding (record wins); a mechanical claim with no record is
|
||||
unverifiable — request the citation. A green verdict-cache hit
|
||||
(`metadata.verdict_cache.key`) counts the same as a fresh run.
|
||||
|
||||
{READ_FIRST_STEPS}
|
||||
4. For each checklist item, determine whether the {ARTIFACT_NOUN} satisfies it.
|
||||
Every checklist item must receive a PASS or FAIL verdict.
|
||||
@@ -46,6 +58,21 @@ Label: {DIMENSION_NAME}
|
||||
(reviewer_count > 1), use the slot-prefixed form {DIM}R{k}-F{NNN} with your
|
||||
1-based slot k (e.g. TOPOR1-F001) so parallel slot files never collide on id.
|
||||
{CONTRADICTION_RULE}
|
||||
6b. Code graph availability (worktree sessions): if `codegraph_status` is
|
||||
unavailable or reports no index for the tree under review (typical when
|
||||
reviewing from a session worktree whose per-worktree `.codegraph/` index
|
||||
has not finished building — see `<instance-root>/rules/code-graph.md`), do NOT
|
||||
silently substitute grep+read for structural questions ("who calls /
|
||||
what depends on / where defined"). Instead:
|
||||
- For symbols on the MAIN branch side (baselines, design refs, cross-session
|
||||
frozen contracts), you MAY query the main checkout's index (path given in
|
||||
your dispatch preamble) and cite `main:<path>:<line>`.
|
||||
- If no index is reachable at all, mark the affected checklist items NA
|
||||
with reason "codegraph unavailable — structural check degraded to grep"
|
||||
and emit one INFO finding (id `{DIM}-F001`-style, in your dimension's own
|
||||
code) recording the degradation, so the Synthesizer can surface it.
|
||||
Findings derived purely from grep+read when a graph query was required are
|
||||
treated as low-confidence and may be waived in synthesis.
|
||||
7. Assign severity strictly:
|
||||
{SEVERITY_DEFINITIONS}
|
||||
8. Count every PASS and FAIL. Compute pass_rate = passed / total_checks.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
> Core 中立版(Increment 6a 改写,原 deferHard verbatim)。编号与条目结构严格不变(C-2 不变量);实例术语按 `core/adapters/TERMINOLOGY.md` 绑定。
|
||||
# > Core 中立版(Increment 6a 改写,原 deferHard verbatim)。编号与条目结构严格不变(C-2 不变量);实例术语按 `core/adapters/TERMINOLOGY.md` 绑定。
|
||||
name: Coordinator
|
||||
purpose: >
|
||||
Pool dispatch coordinator (billing-v2 [org-internal #4041] §7, REQ-F-012): a wake-driven,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
> Core 中立版(Increment 6a 改写,原 deferHard verbatim)。编号与条目结构严格不变(C-2 不变量);实例术语按 `core/adapters/TERMINOLOGY.md` 绑定。
|
||||
# > Core 中立版(Increment 6a 改写,原 deferHard verbatim)。编号与条目结构严格不变(C-2 不变量);实例术语按 `core/adapters/TERMINOLOGY.md` 绑定。
|
||||
name: Producer
|
||||
purpose: >
|
||||
Write production artifacts — requirements, design, plans, code, fixes,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
> Core 中立版(Increment 6a 改写,原 deferHard verbatim)。编号与条目结构严格不变(C-2 不变量);实例术语按 `core/adapters/TERMINOLOGY.md` 绑定。
|
||||
# > Core 中立版(Increment 6a 改写,原 deferHard verbatim)。编号与条目结构严格不变(C-2 不变量);实例术语按 `core/adapters/TERMINOLOGY.md` 绑定。
|
||||
name: Reviewer
|
||||
purpose: >
|
||||
Review one dimension of an artifact against its checklist, read-only.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
> Core 中立版(Increment 6a 改写,原 deferHard verbatim)。编号与条目结构严格不变(C-2 不变量);实例术语按 `core/adapters/TERMINOLOGY.md` 绑定。
|
||||
# > Core 中立版(Increment 6a 改写,原 deferHard verbatim)。编号与条目结构严格不变(C-2 不变量);实例术语按 `core/adapters/TERMINOLOGY.md` 绑定。
|
||||
name: Tool
|
||||
purpose: >
|
||||
Specialized tool agent for image interpretation and other vision/utility
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
> Core 中立版(Increment 6a 改写,原 deferHard verbatim)。编号与条目结构严格不变(C-2 不变量);实例术语按 `core/adapters/TERMINOLOGY.md` 绑定。
|
||||
# > Core 中立版(Increment 6a 改写,原 deferHard verbatim)。编号与条目结构严格不变(C-2 不变量);实例术语按 `core/adapters/TERMINOLOGY.md` 绑定。
|
||||
name: Verifier
|
||||
purpose: >
|
||||
Run the iteration's DoD matrix, integration tests, NFR validation, and
|
||||
|
||||
@@ -198,6 +198,14 @@
|
||||
- **Rule 4 — Aggregation, not reinterpretation**: You MUST NOT soften, rephrase,
|
||||
or downgrade reviewer findings. If a reviewer writes "BLOCKER", it stays
|
||||
"BLOCKER" in synthesis.
|
||||
|
||||
1c. **Pass-rate recalc post-check (MANDATORY, [org-internal #5658])**: for
|
||||
every dimension, recompute `pass_rate = passed / total_checks` from its
|
||||
`quantitative_summary` and compare with the reported value. On a mismatch:
|
||||
keep the raw file unchanged, use the RECOMPUTED value in the synthesis
|
||||
digest, and note the mismatch — a reviewer-output whose `pass_rate` does
|
||||
not match its own counts is a malformed artifact (the schema description
|
||||
says exactly this; this step is the enforcement).
|
||||
- **Rule 5 — Anonymous findings preservation**: If two reviewers independently
|
||||
flag the same issue from different dimensions, preserve both entries. Do not
|
||||
deduplicate by discarding one — cross-dimension agreement is itself a signal.
|
||||
@@ -209,6 +217,11 @@
|
||||
Return ONLY this summary as your final message. Do NOT include the full
|
||||
synthesis JSON — it is already posted to the pipeline PR / source issue
|
||||
comment (for audit-process runs, the wiki page `audit/{date}/round{N}/synthesis`).
|
||||
|
||||
When your dispatch carries `format` (StructuredOutput mount, [org-internal
|
||||
[org-internal #5658]]): the structured output is the MIRROR self-check of this summary (same
|
||||
schema, schema-enforced), not a second artifact — the posted fenced JSON block
|
||||
and this summary remain canonical.
|
||||
Persist this summary verbatim to
|
||||
`<runs-root>/{slug}/reviews/{stage}/round{N}/synthesis-return.md` before
|
||||
returning (step 9 above — worker-report persistence [org-internal #2847]).
|
||||
|
||||
@@ -1,33 +1,14 @@
|
||||
---
|
||||
name: codegraph-setup
|
||||
description: >
|
||||
Use ONLY when installing, configuring, initializing, or troubleshooting CodeGraph
|
||||
(@colbymchenry/codegraph — https://github.com/colbymchenry/codegraph) in the
|
||||
octopus environment. Covers global CLI install, per-project `.codegraph/`
|
||||
indexing, and maintenance commands (status, sync, upgrade, uninstall). MCP
|
||||
wiring into octopus.jsonc is handled by the kickoff pipeline
|
||||
(`octopus kickoff` or `/kickoff`). Also use when a project session reports a
|
||||
missing/stale `.codegraph/` index.
|
||||
Use ONLY when installing, configuring, initializing, or troubleshooting
|
||||
CodeGraph (@colbymchenry/codegraph) in the octopus environment.
|
||||
triggers:
|
||||
- codegraph
|
||||
- code graph
|
||||
- codegraph setup
|
||||
- codegraph install
|
||||
- codegraph init
|
||||
- .codegraph
|
||||
- codegraph_explore
|
||||
- codegraph_node
|
||||
- codegraph_callers
|
||||
- codegraph_status
|
||||
- install codegraph
|
||||
# Chinese — bare nouns for code-graph concepts. The English "codegraph" brand
|
||||
# name above already covers mixed-language phrasings; these cover pure Chinese.
|
||||
- 代码图
|
||||
- 代码图谱
|
||||
- 代码索引
|
||||
- 索引代码
|
||||
- 装代码图
|
||||
- 初始化代码图
|
||||
role: Producer
|
||||
---
|
||||
|
||||
|
||||
@@ -179,10 +179,6 @@ Available work items:
|
||||
|
||||
#### Phase 1 — Parse Context
|
||||
|
||||
> **Pipeline stage**: if the source issue exists, move it to the `implement`
|
||||
> column on the Pipeline Stages board per `_shared/gitea-write-patterns.md`
|
||||
> Pattern 7.5. Skip if no source issue exists.
|
||||
|
||||
Read the upstream artifacts to build a complete implementation context.
|
||||
Resolve inputs per the DAG-route read map (Preconditions above); standalone
|
||||
modes read the request/bug report instead:
|
||||
@@ -499,11 +495,6 @@ issue exists.
|
||||
retired — each one re-triggered the full CI surface for near-zero re-tested
|
||||
risk.
|
||||
|
||||
> **Kanban column lifecycle**: manual — move the source issue across board
|
||||
> columns explicitly as the pipeline stage changes (Pattern 7.5 in
|
||||
> `_shared/gitea-write-patterns.md`); column semantics: wiki
|
||||
> `kanban-lifecycle`.
|
||||
|
||||
---
|
||||
|
||||
#### Phase 5 — Report
|
||||
|
||||
@@ -97,10 +97,7 @@ The stage IDs remain as-is — they are used by the stage registry and auto-appr
|
||||
This skill follows the standardized parallel-review pipeline. The full mechanics are in:
|
||||
|
||||
- `<!-- inject: ../_shared/review-pipeline-phases.md -->` — Phase A through Phase E
|
||||
- **Phase A step 0**: move the source issue to the `review` column on the
|
||||
Pipeline Stages board per `_shared/gitea-write-patterns.md` Pattern 7.5
|
||||
(see `_shared/review-pipeline-phases.md` for the canonical orchestrator
|
||||
actions — step 0 is now part of the shared flow).
|
||||
(canonical orchestrator actions for the shared flow)
|
||||
- `<!-- inject: ../_shared/review-orchestrator-rules.md -->` — mandatory orchestrator rules
|
||||
- `<!-- inject: ../_shared/review-final-report-template.md -->` — final report format
|
||||
- `<!-- inject: ../_shared/review-revision-prompt.md -->` — Phase C revision prompt template
|
||||
|
||||
@@ -458,7 +458,7 @@ table).
|
||||
<!-- section:phase-a -->
|
||||
## Phase A — Parallel Review
|
||||
|
||||
> **Canonical mechanics**: `core/skills/_shared/review-pipeline-phases.md` — keep this section in sync with the canonical Phase A–E flow. This section adds review-code-specific constants (10 dimensions, severity definitions, risk tiers, output mode, standalone-bugfix mode). Step 0 (move source issue to `review` column on Pipeline Stages board per Pattern 7.5) is inherited from the shared Phase A orchestrator actions; see `_shared/review-pipeline-phases.md`.
|
||||
> **Canonical mechanics**: `core/skills/_shared/review-pipeline-phases.md` — keep this section in sync with the canonical Phase A–E flow. This section adds review-code-specific constants (10 dimensions, severity definitions, risk tiers, output mode, standalone-bugfix mode); orchestrator actions are inherited from the shared Phase A flow.
|
||||
|
||||
### Standalone Bugfix Mode — Orchestrator Dispatch
|
||||
|
||||
@@ -530,6 +530,13 @@ fallback is retired with the design pipeline, [org-internal #3072] phase 3):
|
||||
emits the reviewer's output; it does NOT touch the code under review, so
|
||||
rule #7 auditor independence holds.)
|
||||
- Temperature: 0.1 (deterministic output).
|
||||
- StructuredOutput mount ([org-internal #5658]): pass `format: { type: "json_schema",
|
||||
schema: <the reviewer-output.schema.json contents you read at prompt
|
||||
build time> }` on the Task dispatch — the reviewer's final emission is
|
||||
schema-enforced (malformed verdict/severity/summary args are rejected
|
||||
with field-path repair feedback inside the reviewer's own loop). The
|
||||
findings FILE remains the canonical Tier-1 artifact; the structured
|
||||
output mirrors it as a self-check.
|
||||
|
||||
**Worktree-path rule (mandatory)**: Every file path in the reviewer prompt
|
||||
(`{FILE_SECTIONS}`, design reference paths, artifact paths) MUST be the
|
||||
@@ -545,6 +552,21 @@ fallback is retired with the design pipeline, [org-internal #3072] phase 3):
|
||||
observed in the 2026-07 auto-approve retrospective (5-round convergence,
|
||||
67.7% rework fraction).
|
||||
|
||||
**Code-graph availability preamble (worktree sessions, [org-internal #4187])**: the main
|
||||
checkout's `.codegraph/` index does NOT cover a session worktree
|
||||
([org-internal #2561]/TD-006). Before dispatch, the Orchestrator checks the worktree's
|
||||
own index: run `codegraph_status` against the worktree root, or check for
|
||||
`<worktree-root>/.codegraph/codegraph.db` (a bare `init.log` without the
|
||||
db means the background `session-worktree.sh create` init is still running).
|
||||
Include in each reviewer's dispatch preamble: (a) the worktree index state
|
||||
(ready / building / absent), and (b) when absent or still building, the
|
||||
ABSOLUTE path of the main checkout (which has its own `.codegraph/`) so
|
||||
DGN/COR reviewers can query MAIN-side symbols (design baselines, frozen
|
||||
cross-session contracts) from the main checkout's index and cite them as
|
||||
`main:<path>:<line>`. Reviewers apply rule 6b of
|
||||
`_shared/review-reviewer-prompt.md` (NA + INFO finding) when no index is
|
||||
reachable at all — grep-only structural claims must never pass silently.
|
||||
|
||||
4. Wait for all reviewers to complete. Each reviewer writes its finding JSON to
|
||||
`<runs-root>/{slug}/reviews/code/round{N}/findings-{DIMENSION_CODE}.json`
|
||||
(Tier 1 local, validated by `core/schemas/reviewer-output.schema.json`). After all
|
||||
|
||||
@@ -196,10 +196,6 @@ each missing item.
|
||||
<!-- section:phase-1 -->
|
||||
## Phase 1 — Load Verification Context
|
||||
|
||||
> **Pipeline stage**: if the source issue exists, move it to the `verify`
|
||||
> column on the Pipeline Stages board per `_shared/gitea-write-patterns.md`
|
||||
> Pattern 7.5. Skip if no source issue exists.
|
||||
|
||||
Read the upstream artifacts. DAG task/milestone mode (the live path — see
|
||||
the DAG branch below for its read map):
|
||||
|
||||
@@ -310,6 +306,20 @@ gate fingerprint is keyed on the working tree (SHA + uncommitted state +
|
||||
untracked), so it covers pre-push/headless states the same-SHA CI clauses
|
||||
cannot.
|
||||
|
||||
### 2.0b — Gate Records as Deterministic Inputs ([org-internal #5656] N-04)
|
||||
|
||||
Mechanical checks MUST be grounded in gate records (`gate` tool result
|
||||
metadata), never in a model's transcription of command output:
|
||||
|
||||
- Cite `exit_code` verbatim — canonical block from
|
||||
`packages/octopus/src/gate/consume.ts`: `gate <id> (<tier>):
|
||||
exit_code=<n> -> green|red`, plus `duration_ms` / `ci_run_id` when present.
|
||||
- `exit_code === null` (timeout/abort) is NO verdict — rerun required; a
|
||||
pass claim cannot stand on it.
|
||||
- A green verdict-cache hit (`metadata.verdict_cache.key`) satisfies the
|
||||
check the same as a fresh run (content-addressed, same fingerprint).
|
||||
- Narration drift (claim != record) is itself a verification finding.
|
||||
|
||||
### 2.1 Full Test Suite
|
||||
|
||||
```bash
|
||||
@@ -1203,10 +1213,7 @@ If the user confirms, invoke the commit workflow per
|
||||
|
||||
An iteration is NOT Done until all code is committed in git history.
|
||||
|
||||
After the commit gate passes, move the source issue to the `done` column on
|
||||
the Pipeline Stages board per `_shared/gitea-write-patterns.md` Pattern 7.5.
|
||||
Skip if no source issue exists. `done` is a stage column marker; issue
|
||||
closing follows the lifecycle per `issue-checklist-sync.md` 归档动作.
|
||||
Issue closing follows the lifecycle per `issue-checklist-sync.md` 归档动作.
|
||||
|
||||
To notify workflow completion, call the `signal_stage_done` tool.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user