Use this skill when the task is to evaluate Kitsoki as a product through repeatable persona journeys, not when merely editing one unrelated story room. The durable surfaces are:
tools/product-journey/run.pystories/product-journey-qa/app.yaml.agents/agents/product-journey-qa-driver.mdtools/product-journey/personas.json,
tools/product-journey/scenarios.json,
tools/product-journey/github-targets.json.artifacts/product-journey/**/deck.slidey.json,
review.json, media-manifest.json, scenario-outcomes.md,
driver-journal.md, driver-handoff.mdlocal, retained, external, and cassette.
demo evidence exercises aggregation only; it is not product proof.--review-run and --validate-run
have run and the deck has playback media or an explicit playback blocker.Start with the cheap gates before live capture:
python3 tools/product-journey/run.py --validate-corpus --json-output
python3 tools/product-journey/run.py --driver-replay-sweep --seed demo --json-output
GOCACHE=/private/tmp/kitsoki-gocache go run ./cmd/kitsoki test flows stories/product-journey-qa/app.yamlUse --driver-replay-smoke --smoke-scenario <scenario-id> when narrowing a
single scenario. Use --dogfood-smoke when checking matrix-to-rollup artifact
composition.
For the 10 popular GitHub repositories with at least 100 open bugs:
python3 tools/product-journey/run.py --refresh-github-targets --seed <seed>
python3 tools/product-journey/run.py --emit-matrix --seed <seed> \
--target-proof-file .artifacts/product-journey/target-proofs/<proof-id>
python3 tools/product-journey/run.py --validate-matrix \
--matrix-dir .artifacts/product-journey/matrices/<matrix-id> \
--strict-target-proofUse --matrix-personas all when each target should be paired with every
persona. Use normal --validate-matrix for draft matrices; use
--strict-target-proof before a live scored sweep so missing refreshed GitHub
bug/star/license proof is an error. The matrix is an assignment plan, not
evidence that Kitsoki worked.
Create one bundle from a matrix assignment or direct target:
python3 tools/product-journey/run.py --emit-run \
--project <target-id> --persona <persona-id> --seed <seed>Then hand it to the reusable driver:
agent-brief.md, driver-plan.md, and driver-handoff.md..agents/agents/product-journey-qa-driver.md for live/cassette MCP
capture.--attach-evidence or the story attach intent;
loaded runs also expose last_result.next_driver_attach_command.--record-finding; record honest blockers with
--record-blocker or last_result.next_driver_blocker_command.--record-driver-event or the story driver_event
intent.python3 tools/product-journey/run.py --review-run --run-dir <run-dir>
python3 tools/product-journey/run.py --validate-run --run-dir <run-dir>Review deck.slidey.json for the narrative, Playback evidence scenes,
Proof gates, Persona lens, and Driver contract scenes.
When driving through Kitsoki itself, open stories/product-journey-qa/app.yaml.
Useful intents:
validate_corpusmatrix seed=... matrix_personas=primary|alldriver_replay_smoke scenario=... persona=... seed=...driver_replay_sweep persona=... seed=...start project=... persona=... seed=...load run_dir=...handoffattachrecordblockerdriver_eventvalidate_matrix_strictreviewvalidatePrefer the story as the write surface when an operator session is attached. Use CLI fallback when the story session is unavailable.
When refining the pipeline:
review.json, validation output,
driver-handoff.md, or a failed flow.--validate-corpus, --driver-replay-sweep, and product-journey
story flows.f2b44fa
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.