@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 +10 -0
- package/README.md +4 -4
- package/README_VN.md +1 -1
- package/package.json +1 -1
- package/skills/flow/SKILL.md +3 -3
- package/skills/flow/_templates/00-inspect.md +18 -0
- package/skills/flow/harness/GAP-MATRIX-0.1.17.md +50 -31
- package/skills/flow/harness/README.md +15 -9
- package/skills/flow/harness/pins/harness-cli-v0.1.17.sha256sums +6 -3
- package/skills/flow/references/command-dispatch.md +1 -1
- package/skills/flow/references/gate-rules.md +21 -0
- package/skills/flow/references/native-rituals.md +45 -8
- package/skills-manifest.json +1 -1
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.
|
|
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.
|
|
28
|
-
> Skill product version lives in `skills/flow/SKILL.md` (`metadata.version`, e.g. `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.
|
|
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
package/package.json
CHANGED
package/skills/flow/SKILL.md
CHANGED
|
@@ -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.
|
|
12
|
-
attribution: "Methodology from ai20k-build-phase/buildflow (Tony, arealisticdreamer.com);
|
|
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.
|
|
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
|
-
#
|
|
1
|
+
# SUPERSEDED (2026-08) — historical comparison only
|
|
2
2
|
|
|
3
|
-
**
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
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 |
|
|
14
|
-
| 005 | present | present |
|
|
15
|
-
| 006–008 | **absent** (reserved gap) | changesets / deps / hierarchy | Not adopted
|
|
16
|
-
| 009–012 | **usage/accessed** (flow-
|
|
17
|
-
| 013 | absent | changeset content sha |
|
|
18
|
-
| 014+ | **graph-executor** (flow-owned
|
|
19
|
-
|
|
20
|
-
## Commands / invariants
|
|
21
|
-
|
|
22
|
-
| Surface | Flow status |
|
|
23
|
-
|
|
24
|
-
| `story update --status implemented` | rejected
|
|
25
|
-
| `story complete` | flow-native
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
|
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.
|
|
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
|
-
##
|
|
8
|
+
## Live authority (flow-owned)
|
|
10
9
|
|
|
11
|
-
|
|
|
12
|
-
|
|
13
|
-
|
|
|
14
|
-
|
|
|
15
|
-
| **
|
|
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
|
-
|
|
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
|
-
#
|
|
2
|
-
#
|
|
3
|
-
#
|
|
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
|
-
|
|
4
|
-
installed.
|
|
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
|
|
7
|
-
claudekit-engineer (proprietary, All Rights Reserved)
|
|
8
|
-
ck skill is installed, it is offered as a **richer
|
|
9
|
-
see the seam files (`gate-rules.md`,
|
|
10
|
-
|
|
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.
|