@manhquy/flow-skill 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  All notable changes to `@manhquy/flow-skill`. Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versioning: [SemVer](https://semver.org/).
4
4
 
5
+ ## [0.4.0] — 2026-08-11 — ships skill v0.27.0 (harness authority continuity)
6
+
7
+ Skill-content release. Ships skill product **v0.27.0**: flow-owned durable authority,
8
+ SUPERSEDED GAP matrix, R-IMPROVE-HARNESS ritual, brownfield Evidence ledger + material-authority
9
+ stop (see root `CHANGELOG.md` `## 0.27.0`). Publishes to dist-tag **`latest`**.
10
+
11
+ ### Changed
12
+ - Bundled skill tree re-synced from monorepo `skills/flow/` (48 test suites green at ship).
13
+ - Install: **`npx @manhquy/flow-skill@latest`**.
14
+
5
15
  ## [0.3.1] — 2026-08-11 — help USAGE shows @latest
6
16
 
7
17
  ### Fixed
package/README.md CHANGED
@@ -10,7 +10,7 @@ One-command installer that copies the [flow](https://github.com/manhquydev/flow-
10
10
  ## Install
11
11
 
12
12
  ```
13
- # Newest GA — current: v0.3.1, ships skill v0.26.0
13
+ # Newest GA — current: v0.4.0, ships skill v0.27.0
14
14
  npx @manhquy/flow-skill@latest
15
15
  ```
16
16
 
@@ -24,8 +24,8 @@ An interactive prompt asks which agents to install to. Pick one or more, confirm
24
24
  > package to `node_modules`. You must **run** it (`npx @manhquy/flow-skill@latest` or
25
25
  > `npx flow-skill` after install) to copy the skill into agent homes.
26
26
  >
27
- > **Two version axes:** package `version` in this folder is the **installer** (e.g. `0.3.0`).
28
- > Skill product version lives in `skills/flow/SKILL.md` (`metadata.version`, e.g. `0.26.0`).
27
+ > **Two version axes:** package `version` in this folder is the **installer** (e.g. `0.4.0`).
28
+ > Skill product version lives in `skills/flow/SKILL.md` (`metadata.version`, e.g. `0.27.0`).
29
29
  > `--help` and the JSONL `plan` event expose both (`version` + `skillVersion`).
30
30
 
31
31
  ## Non-interactive
@@ -104,7 +104,7 @@ rm -rf <project>/.claude/skills/flow
104
104
  `--json` streams one JSON object per line:
105
105
 
106
106
  ```jsonl
107
- {"event":"plan","version":"0.3.0","skillVersion":"0.26.0","dryRun":false,"scope":"global","targets":["claude","codex"]}
107
+ {"event":"plan","version":"0.4.0","skillVersion":"0.27.0","dryRun":false,"scope":"global","targets":["claude","codex"]}
108
108
  {"event":"install:start","target":"claude","dests":["~/.claude/skills/flow"]}
109
109
  {"event":"install:done","target":"claude","dests":["~/.claude/skills/flow"],"result":"success","error":null,"warnings":[]}
110
110
  {"event":"summary","success":true,"total":2,"attempted":2,"installed":2,"failed":0,"skipped":0,"aborted":false}
package/README_VN.md CHANGED
@@ -10,7 +10,7 @@ Trình cài đặt một-lệnh sao chép skill [flow](https://github.com/manhqu
10
10
  ## Cài đặt
11
11
 
12
12
  ```
13
- # Newest GA — hiện tại: v0.3.1, ships skill v0.26.0
13
+ # Newest GA — hiện tại: v0.4.0, ships skill v0.27.0
14
14
  npx @manhquy/flow-skill@latest
15
15
  ```
16
16
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manhquy/flow-skill",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "Install the flow skill (buildflow gated build process) into your coding agent(s) via one npx command",
5
5
  "type": "module",
6
6
  "bin": {
@@ -8,8 +8,8 @@ keywords: [flow, buildflow, gate, build, ship, scope, prd, contract, card, deplo
8
8
  license: MIT
9
9
  metadata:
10
10
  author: flow-skill
11
- version: "0.26.0"
12
- attribution: "Methodology from ai20k-build-phase/buildflow (Tony, arealisticdreamer.com); harness/agent layers from repository-harness, claudekit-engineer, BMAD-METHOD. v0.22 concierge routing pattern adapted from BMAD-METHOD's bmad-help; forge-idea ritual adapted from BMAD-METHOD's bmad-forge-idea (both MIT, BMad Code LLC)."
11
+ version: "0.27.0"
12
+ attribution: "Methodology from ai20k-build-phase/buildflow (Tony, arealisticdreamer.com); durable-layer ancestry and improve-ritual spirit from repository-harness (protocol v1 EOL — flow-owned fork); agent patterns from claudekit-engineer, BMAD-METHOD. v0.22 concierge from BMAD bmad-help; forge-idea from bmad-forge-idea (MIT, BMad Code LLC)."
13
13
  ---
14
14
 
15
15
  # /flow — buildflow gated build harness
@@ -235,7 +235,7 @@ Hard stops (iteration/token/time caps) and ground-truth gates (`flow.sh` exit, r
235
235
  - `references/gate-eval.md` — `/flow eval` behavioral proof for the semantic layer: what it
236
236
  measures (a fresh-judge lower bound, NOT the work-mode self-challenge), cost, thresholds,
237
237
  and the honest authorship-bias limitation. Read before running or relaying a scorecard.
238
- - `harness/` — durable layer (`flow.sh harness ...`): intake/story/**complete**/trace/decision/backlog. Pins: protocol floor `harness-cli-v0.1.14`, trust CLI `0.1.17` (never `0.1.16`). See `harness/README.md` + `harness/GAP-MATRIX-0.1.17.md`. Never `story update --status implemented` — use `story complete --proof-source …`.
238
+ - `harness/` — **flow-owned** durable layer (`flow.sh harness ...`): intake/story/**complete**/trace/decision/backlog. Live authority = this Python CLI + `flow.sh` + gate-rules (not external `harness-cli`). Historical gap: `harness/GAP-MATRIX-0.1.17.md` (SUPERSEDED). Never `story update --status implemented` — use `story complete --proof-source …`. Improve skill/harness guidance: ritual **R-IMPROVE-HARNESS** in `references/native-rituals.md` (explicit-only; fresh-agent rerun before keep).
239
239
  - `playbooks/` — paid-for stack knowledge: read before building a card on that stack, harvest the lesson after.
240
240
  - `_templates/` — the 7 artifacts the runner copies into `flow/` and `cards/`. Never edit during a run.
241
241
 
@@ -12,6 +12,7 @@ then check the gate. `/flow assess` seeds the auto-scan and validates this gate.
12
12
  - [ ] I listed the top risks / tech-debt / known issues
13
13
  - [ ] I noted the test + quality baseline (what is covered vs not)
14
14
  - [ ] A human reviewed this assessment (brownfield assessment is operator-gated)
15
+ - [ ] Every material claim in this assessment is tagged in the Evidence ledger (no Unknown/Decision-required silently treated as product law)
15
16
  - [ ] No FILL placeholders remain in this file
16
17
 
17
18
  ## Detected (auto-scan)
@@ -38,5 +39,22 @@ is most likely to hide. [FILL: note which ranked surfaces you inspected + what y
38
39
  ## Test + quality baseline
39
40
  [FILL: what is tested vs not; how to run the suite; coverage if known]
40
41
 
42
+ ## Evidence ledger (claims)
43
+
44
+ Tag every material claim from Functionality / Risks / Verdict. Do **not** write product
45
+ policy as fact unless **Authoritative**. Tags:
46
+
47
+ | Tag | Meaning |
48
+ |-----|---------|
49
+ | **Authoritative** | Instruction, accepted decision, product contract, documented procedure |
50
+ | **Observed** | Code/config/tests show current behavior |
51
+ | **Derived** | Direct operational consequence of observed implementation |
52
+ | **Decision required** | Normative/product choice with no authority yet |
53
+ | **Unknown** | Repo does not establish the answer |
54
+
55
+ | Claim | Tag | Source (path or "none") |
56
+ |-------|-----|-------------------------|
57
+ | [FILL: one material claim] | Observed \| Authoritative \| Derived \| Decision required \| Unknown | path:line or none |
58
+
41
59
  ## Verdict
42
60
  [FILL: is the codebase healthy enough to build on? what must be fixed first?]
@@ -1,42 +1,61 @@
1
- # Gap matrix: flow durable layer vs repository-harness CLI 0.1.17
1
+ # SUPERSEDED (2026-08) — historical comparison only
2
2
 
3
- **Authority:** `repository-harness` (local `D:\project\flow\repository-harness`).
4
- **Pins:** protocol floor **`harness-cli-v0.1.14`** · trust/consumer CLI **`harness-cli-v0.1.17`** · **never** install/use **`0.1.16`** release assets (tag without published proof).
5
- **Scope:** inventory only — does **not** claim US-101 bit-identical or protocol-v1 parity for flow Python.
3
+ > **Live policy:** durable layer is **flow-owned**. **No further schema sync** from
4
+ > repository-harness / `harness-cli`. Last published protocol-v1 archive:
5
+ > **`harness-cli-v0.1.22`** (EOL; no features). Do not treat 0.1.14/0.1.17 as live trust pins.
6
+ >
7
+ > **Live authority:** `flow_harness.py` + `flow.sh` + `gate-rules.md` (see `harness/README.md`).
6
8
 
7
- Supersedes: brainstorm 260703 Thread1 (“nothing to upgrade”).
9
+ ---
10
+
11
+ # Gap matrix (archive): flow durable layer vs repository-harness CLI 0.1.17
12
+
13
+ **Historical authority note:** compared against `harness-cli-v0.1.17` during v0.24 trust-align.
14
+ Pins below are **archive labels**, not install targets.
15
+
16
+ | Archive label | Tag | Historical use |
17
+ |---------------|-----|----------------|
18
+ | Protocol floor (archive) | `harness-cli-v0.1.14` | protocol v1 discovery floor at trust-align time |
19
+ | Trust-align snapshot | `harness-cli-v0.1.17` | US-101 spirit inspiration |
20
+ | Do not use | `harness-cli-v0.1.16` | tag without published assets |
21
+ | Last published archive | `harness-cli-v0.1.22` | EOL max (repository-harness ADR 0027) |
22
+
23
+ Flow does not claim US-101 parity or an isomorphic control plane.
24
+
25
+ **Supersession:** upstream work-graph / protocol-v1 is not a sync target (recorded 2026-07-26 graph band + 2026-08 EOL).
8
26
 
9
27
  ## Schema
10
28
 
11
- | Ver | Flow | Harness 0.1.17 | Notes |
12
- |-----|------|----------------|-------|
13
- | 001–004 | present (shared) | present | Hash-identical at last measure (2026-07-18) |
14
- | 005 | present | present | File hash may differ on comments only — do not overclaim DDL fork |
15
- | 006–008 | **absent** (reserved gap) | changesets / deps / hierarchy | Not adopted this plan |
16
- | 009–012 | **usage/accessed** (flow-only) | improvement identity / links / closure | **Semantic collision** — same numbers, different DDL |
17
- | 013 | absent | changeset content sha | Not adopted — stays reserved/absent |
18
- | 014+ | **graph-executor** (flow-owned band) | absent | Flow-owned since the 2026-07-26 supersession (plan `260726-1718-harness-graph-executor-langgraph-port`) |
19
-
20
- ## Commands / invariants
21
-
22
- | Surface | Flow status | Harness 0.1.17 | Trust note |
23
- |---------|-------------|----------------|------------|
24
- | `story update --status implemented` | rejected (trust-align) | rejected (US-101) | Use `story complete` |
25
- | `story complete` | flow-native flags + honest `proof_source` | `story complete` + live verify | Flow may complete via `card_markdown_gate` **without** setting `last_verified_result=pass` |
26
- | `story verify` | optional shell verify_command | required for shell-proven complete | shell=True = operator-authored only |
27
- | `query sql` | **not exposed** | read-only connection | Do not add mutating SQL |
28
- | Rust forward | refused on flow-lineage DB | n/a | `FLOW_HARNESS_BACKEND=rust` → exit 2 when usage mirror / schema≥9 |
29
- | Changesets / work-graph | **flow-owned graph executor** (schema band 014+) | 006–013 | **Superseded 2026-07-26** (was: out of scope, FOMO red line) — flow builds its own work-graph; upstream 006–013 will NOT be adopted. Decision record: plan `260726-1718-harness-graph-executor-langgraph-port` |
30
- | `query contract --json` | not on Python CLI | protocol v1 discovery | Optional external binary smoke only |
31
-
32
- ## Pins (consumer)
29
+ | Ver | Flow | Harness 0.1.17 (archive) | Notes |
30
+ |-----|------|--------------------------|-------|
31
+ | 001–004 | present (shared ancestry) | present | Frozen; no further sync |
32
+ | 005 | present | present | tool registry ancestry |
33
+ | 006–008 | **absent** (reserved gap) | changesets / deps / hierarchy | Not adopted |
34
+ | 009–012 | **usage/accessed** (flow-owned) | different upstream meaning | Semantic collision avoided |
35
+ | 013 | absent | changeset content sha | Reserved/absent |
36
+ | 014+ | **graph-executor** (flow-owned) | absent | Flow-owned since 2026-07-26 |
37
+
38
+ ## Commands / invariants (still live in flow Python)
39
+
40
+ | Surface | Flow status | Trust note |
41
+ |---------|-------------|------------|
42
+ | `story update --status implemented` | rejected | Use `story complete` |
43
+ | `story complete` | flow-native `proof_source` | Never forge `last_verified_result=pass` from markdown alone |
44
+ | Rust forward | refused on flow-lineage DB | exit 2 when usage mirror / schema≥9 |
45
+ | Changesets 006–013 | not adopted | graph band 014+ is flow-owned |
46
+
47
+ ## Historical pins (do not install as product dependency)
33
48
 
34
49
  ```
35
- HARNESS_PROTOCOL_V1_TAG = harness-cli-v0.1.14 # floor
36
- HARNESS_CLI_TRUST_TAG = harness-cli-v0.1.17 # trust features + release proof
37
- DO_NOT_USE = harness-cli-v0.1.16 # no assets / failed promotion
50
+ # archive labels only — not live authority
51
+ HARNESS_PROTOCOL_V1_TAG_ARCHIVE = harness-cli-v0.1.14
52
+ HARNESS_CLI_TRUST_ALIGN_SNAPSHOT = harness-cli-v0.1.17
53
+ HARNESS_CLI_LAST_PUBLISHED_ARCHIVE = harness-cli-v0.1.22
54
+ DO_NOT_USE = harness-cli-v0.1.16
38
55
  ```
39
56
 
40
57
  ## Rust refuse-forward
41
58
 
42
- Any DB with `usage_event` or `MAX(schema_version) >= 9` is **flow-lineage**. Python entrypoint must refuse forwarding to external `harness-cli` (exit 2). `graph` verbs are NEVER forwarded regardless of DB state (flow-only surface, band 014+). The former "schema re-home ≥014 (separate epic)" note is superseded 2026-07-26: 014+ is now the flow-owned graph-executor band; 013 remains reserved/absent.
59
+ Any DB with `usage_event` or `MAX(schema_version) >= 9` is **flow-lineage**. Python entrypoint
60
+ must refuse forwarding to external `harness-cli` (exit 2). `graph` verbs are NEVER forwarded.
61
+ **Supersession:** upstream work-graph / protocol-v1 is not a sync target.
@@ -1,20 +1,26 @@
1
1
  # flow-harness — durable layer
2
2
 
3
3
  The durable memory of `/flow`: intake classification, story packets with proof status,
4
- auto-scored execution traces, decision records, and the growth-rule backlog. Ported from
5
- `repository-harness` (shared base schema + flow-only usage extensions). State lives at
4
+ auto-scored execution traces, decision records, and the growth-rule backlog. State lives at
6
5
  `<project>/.flow/harness.db` and survives across sessions — this is the "external memory"
7
6
  that fights context rot.
8
7
 
9
- ## Authority pins (repository-harness)
8
+ ## Live authority (flow-owned)
10
9
 
11
- | Pin | Tag | Use |
12
- |-----|-----|-----|
13
- | Protocol floor | **`harness-cli-v0.1.14`** | protocol v1 discovery floor |
14
- | Trust / consumer | **`harness-cli-v0.1.17`** | US-101 spirit + release proof |
15
- | **Do not use** | `harness-cli-v0.1.16` | tag without published assets |
10
+ | Layer | Authority |
11
+ |-------|-----------|
12
+ | **Mechanical gates** | `runner/flow.sh` exit codes |
13
+ | **Semantic gates** | `references/gate-rules.md` + `law/` |
14
+ | **Durable memory** | **this Python CLI** (`flow_harness.py`) + `.flow/harness.db` — **flow-owned** |
16
15
 
17
- Gap inventory: [`GAP-MATRIX-0.1.17.md`](./GAP-MATRIX-0.1.17.md). Flow does **not** claim bit-identical US-101.
16
+ Schema bands **001–005** are frozen shared ancestry with pre-EOL `repository-harness`;
17
+ **009–012** and **014+** are flow-owned forever. **No further upstream schema sync**
18
+ (repository-harness protocol v1 / `harness-cli` is EOL — ADR 0027; last published archive
19
+ `harness-cli-v0.1.22`). Historical gap inventory:
20
+ [`GAP-MATRIX-0.1.17.md`](./GAP-MATRIX-0.1.17.md) (SUPERSEDED comparison only).
21
+
22
+ **Self-improving this skill:** explicit-only ritual **`R-IMPROVE-HARNESS`** in
23
+ `references/native-rituals.md` (fresh-agent rerun before claiming a keep).
18
24
 
19
25
  ## Backends
20
26
 
@@ -1,6 +1,9 @@
1
- # Digests from GitHub Release harness-cli-v0.1.17 (fetched for pin policy)
2
- # TAG harness-cli-v0.1.17
3
- # PROTOCOL_FLOOR harness-cli-v0.1.14
1
+ # HISTORICAL ARCHIVE ONLY — not live product trust.
2
+ # Digests from GitHub Release harness-cli-v0.1.17 (v0.24 trust-align snapshot).
3
+ # Protocol v1 / harness-cli is EOL (repository-harness ADR 0027; last published archive 0.1.22).
4
+ # Do not install as a flow dependency; flow durable layer is flow-owned Python.
5
+ # TAG harness-cli-v0.1.17 (archive)
6
+ # PROTOCOL_FLOOR harness-cli-v0.1.14 (archive)
4
7
  # DO_NOT_USE harness-cli-v0.1.16
5
8
  5d13f0a024d9d69701534a879581c9433bc0069e04d052e5aacd93b91b3b7a43 harness-cli-linux-x64
6
9
  128c42c251fb31b58582342c09c68be6ed3329340fb1d8f179c88590a4539c97 harness-cli-linux-arm64
@@ -9,7 +9,7 @@ install dir; run from the project root so `flow/` and `cards/` resolve.
9
9
  | `/flow` | `bash <skill>/runner/flow.sh status` | Runner now prints its own `NEXT ->` line (same helper as `resume`) plus stage dwell and, past 10 cards, a compact done/in-flight/todo summary. Relay it; nothing to author. |
10
10
  | `/flow resume` | `bash <skill>/runner/flow.sh resume` | Read-only, no lock. Relay all four sections verbatim (last session, in-flight + dwell, gate state, NEXT ->). Run this FIRST when entering a project mid-cycle with no prior context this session. Never expand on or guess at raw args it didn't print — it deliberately shows command names only. |
11
11
  | `/flow next` | `bash <skill>/runner/flow.sh next` | If FAIL: relay the exact violations + line numbers; offer help, don't author/tick in teach mode. If PASS: run the stage's challenge in `gate-rules.md`; flag hollow content, let operator decide. |
12
- | `/flow assess` | `bash <skill>/runner/flow.sh assess` | Brownfield only: fill `flow/00-inspect.md` from EVIDENCE (read the code) — functionality/UI/UX vs product, risks, test baseline. Reuse `scout`/`researcher`. Gate is operator-reviewed; then proceed to `/flow next`. |
12
+ | `/flow assess` | `bash <skill>/runner/flow.sh assess` | Brownfield only: fill `flow/00-inspect.md` from EVIDENCE (read the code) — functionality/UI/UX vs product, risks, test baseline, **Evidence ledger** claim tags. After mechanical PASS, apply gate-rules **Brownfield assess** challenge (no Observed→product-law promotion). Reuse `scout`/`researcher`. Gate is operator-reviewed; then proceed to `/flow next`. |
13
13
  | `/flow card` | `bash <skill>/runner/flow.sh card` | Confirm the new card id; remind: fill Scope (one thing) / Allowed files / Verify / Done-evidence per `law/CLAUDE.md`. |
14
14
  | `/flow card start C-NNN` | `bash <skill>/runner/flow.sh card start C-NNN` | Optional: mark the card in flight (operator-visible in-progress, shown in `/flow status`). Portable `cards/.inflight` registry; does NOT touch the gated `status:` field. Coexists with hand-edit. |
15
15
  | `/flow card done C-NNN` | `bash <skill>/runner/flow.sh card done C-NNN` | Optional convenience: CLI-owned flip to `done`, gated by the SAME done-rules as `check` (reverts on fail — never a hollow done). Then still apply the semantic card review (diff-vs-scope, contract shapes, real evidence) as with `check`. |
@@ -19,6 +19,20 @@ artifact, never silently block a sound one.
19
19
  > the bad shape, not less, and a hedging "unless it matters" clause turns a crisp recipe noisy. Pick
20
20
  > the form deliberately; don't reflexively reach for another "do NOT".
21
21
 
22
+ ## Brownfield assess (flow/00-inspect.md)
23
+
24
+ Separate from Stage 00 Idea. After `flow.sh assess` mechanical PASS (no `[FILL]`, boxes
25
+ checked), apply this semantic challenge before planning:
26
+
27
+ - Are material claims in the **Evidence ledger** tagged
28
+ (Authoritative / Observed / Derived / Decision required / Unknown)?
29
+ - Is any **Observed** or **Derived** claim silently promoted to must-build product law
30
+ without operator authority?
31
+ - Are **Decision required** / **Unknown** items listed for the operator — not invented into
32
+ Scope/PRD?
33
+ - If the ledger is empty or only `[FILL]` rows remain while the gate boxes are checked,
34
+ the assessment is hollow — report mechanically-passed-but-qualitatively-weak.
35
+
22
36
  ## Stage 00 — Idea
23
37
  Mechanical: pitch present, one real person named, no FILL.
24
38
  **Challenge:** Is the pitch really 3 sentences (who / pain / what)? Is the named person a
@@ -52,6 +66,9 @@ Mechanical: 7 boxes checked, no FILL.
52
66
  Mechanical: every feature has Impact (H/M/L) + Grade (A/B/C), no L-above-A in v1, cut list,
53
67
  GO/KILL, no FILL.
54
68
  **Challenge — watch for GRADE LAUNDERING:**
69
+ - **Material-authority stop:** if materially different externally observable product choices
70
+ remain open (quota, identity key, tenancy model, response contract, enforcement owner, …),
71
+ **stop** — list the choice and consequences. Configurable defaults are not authority.
55
72
  - Is any expensive feature quietly graded B when it's really C? (realtime, payments from
56
73
  scratch, custom auth, autonomous agentic pipeline, heavy concurrency = C). Call C a C.
57
74
  - For every C in scope, is it justified as one of: (1) C IS the product -> it goes FIRST;
@@ -66,6 +83,8 @@ GO/KILL, no FILL.
66
83
  ## Stage 03 — PRD
67
84
  Mechanical: filled from stage 02, numeric success metric, pain&gain table, no FILL.
68
85
  **Challenge:**
86
+ - **Material-authority stop:** if the PRD invents policy (who can access what, retention,
87
+ billing rules) with no prior operator/ADR authority, stop and list Decision-required items.
69
88
  - Is the success metric a real NUMBER ("first response < 2h"), not "save time" / "better UX"?
70
89
  - The pain&gain table is the spine: does *every pain* cite evidence (a stage-01 quote or
71
90
  named observation) AND name the v1 feature that kills it? Does *every v1 feature* kill at
@@ -91,6 +110,8 @@ access/effects column filled, no FILL.
91
110
  **The "interface" is the project type's seam** (`/flow project-type`): web=endpoint,
92
111
  cli=command+flags+output/exit, library=public function+args+return, skill=command/file.
93
112
  **Challenge — this is where producer/consumer drift is born (every type):**
113
+ - **Material-authority stop:** access/effects (public/token/admin, writes) that encode product
114
+ policy without operator authority → stop; do not invent tenancy/auth from convenience.
94
115
  - Does every PRD feature map to at least one interface, and vice versa?
95
116
  - Does every interface have BOTH input and output shapes, with field/flag names that will not
96
117
  drift (the #1 AI-build failure: backend ships `player_email`, UI assumed `email`, both green;
@@ -1,13 +1,15 @@
1
- # Native gate rituals — standalone baseline (v0.22)
1
+ # Native gate rituals — standalone baseline (v0.22+)
2
2
 
3
- Five clean-room playbooks that make flow self-sufficient without any external skill kit
4
- installed. Each was written fresh from public/generic patterns (persona-panel review,
3
+ Six clean-room playbooks that make flow self-sufficient without any external skill kit
4
+ installed. Rituals 1–5 cover product gates; **R-IMPROVE-HARNESS** covers skill/harness
5
+ maintenance. Each was written fresh from public/generic patterns (persona-panel review,
5
6
  generic edge-case taxonomy, STRIDE — public Microsoft SDL methodology, git-log
6
- retrospection, iterate-to-numeric-target loops) — none of this text is copied from
7
- claudekit-engineer (proprietary, All Rights Reserved) or any other kit. Where a matching
8
- ck skill is installed, it is offered as a **richer alternative**, never a requirement —
9
- see the seam files (`gate-rules.md`, `adversarial-review.md`, `law/RETRO.md`) for the
10
- native-first wiring, and `claudekit-skills.md` for the optional-enrichment annex.
7
+ retrospection, iterate-to-numeric-target loops, evidence-backed harness improvement) —
8
+ none of this text is copied from claudekit-engineer (proprietary, All Rights Reserved)
9
+ or any other kit. Where a matching ck skill is installed, it is offered as a **richer
10
+ alternative**, never a requirement — see the seam files (`gate-rules.md`,
11
+ `adversarial-review.md`, `law/RETRO.md`) for the native-first wiring, and
12
+ `claudekit-skills.md` for the optional-enrichment annex.
11
13
 
12
14
  Every ritual below follows the same rule as the ck skills it stands in for: it
13
15
  **informs** the gate; the gate (the `flow.sh` exit code + the semantic challenge) still
@@ -131,3 +133,38 @@ Steps:
131
133
  Informs, never judges: this is execution machinery, not a gate — the card's Build/Verify
132
134
  gate (`flow.sh check`) still judges the final diff, exactly as it does for any other
133
135
  card.
136
+
137
+ ## 6. Improve-flow-harness ritual (R-IMPROVE-HARNESS)
138
+
139
+ Purpose: improve one bounded future-agent behavior in **this skill** (guidance, templates,
140
+ gate wording, playbooks, diagnostics) without turning every difficult task into permanent
141
+ process. Port of the *spirit* of repository-harness `$improve-harness` — not a binary
142
+ dependency. **Stable id: `R-IMPROVE-HARNESS`.** (Deferred strategist counsel is
143
+ `R-STRATEGIST` — do not conflate.)
144
+
145
+ When: the operator/maintainer **explicitly** asks to improve the harness/skill after
146
+ observed reusable agent friction. Never auto-fire from `next`/`check`/`auto`. Inspection
147
+ or "report friction" alone does **not** authorize skill edits.
148
+
149
+ Steps:
150
+ 1. **Authority** — confirm explicit improve request; record repo root/revision.
151
+ 2. **Baseline** — representative job, concrete failure, evidence, human intervention,
152
+ known limitations. No observed baseline → stop with an experiment *proposal* only.
153
+ 3. **Earliest gap owner** — context | capability | domain | authority | proof | environment.
154
+ 4. **One intervention hypothesis** before editing:
155
+ ```
156
+ If <smallest change> at <owner>, then a fresh agent will <observable>
157
+ on <job>, because <mechanism>.
158
+ Evidence that would weaken this: …
159
+ ```
160
+ 5. Apply **only** that authorized change (prefer skill docs/templates/playbooks over
161
+ new frameworks). Run focused tests for the changed boundary.
162
+ 6. **Fresh rerun** — new agent session, equivalent start state. Record whether the
163
+ intervention was available, retrieved/invoked, and relevant. If no fresh rerun:
164
+ decision stays **pending fresh rerun** — **never claim keep**.
165
+ 7. **Decision:** keep | revise | remove | pending fresh rerun.
166
+ 8. On **keep**, prefer a durable note: `flow.sh harness backlog close …` or
167
+ `decision add` with `fresh_agent_rerun=yes` + session id.
168
+
169
+ Informs, never judges: this ritual maintains the skill; it never passes a product gate
170
+ and never auto-runs on the build path.
@@ -2,7 +2,7 @@
2
2
  "source": "../skills/flow",
3
3
  "destRelative": "skills/flow",
4
4
  "fileCount": 84,
5
- "syncedAt": "2026-08-11T06:05:58.635Z",
5
+ "syncedAt": "2026-08-11T07:44:16.437Z",
6
6
  "fileList": [
7
7
  "SKILL.md",
8
8
  "_templates/00-idea.md",