mishkan-harness 0.2.0 → 0.2.3
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/README.md +108 -172
- package/bin/mishkan.js +677 -16
- package/docs/design/MISHKAN_decisions.md +450 -8
- package/docs/design/MISHKAN_harness_design.md +1 -33
- package/docs/design/MISHKAN_observability.md +13 -9
- package/docs/research/graphify-token-saving-poc.md +108 -0
- package/docs/usage/09-workflows.md +74 -4
- package/docs/usage/10-observability.md +37 -13
- package/docs/usage/11-graphify.md +264 -0
- package/docs/usage/12-skill-discovery.md +294 -0
- package/docs/usage/README.md +5 -3
- package/package.json +1 -1
- package/payload/install/settings.hooks.json +24 -0
- package/payload/mishkan/AGENT_SPEC.md +25 -7
- package/payload/mishkan/agents/ahikam.md +4 -2
- package/payload/mishkan/agents/aholiab.md +4 -2
- package/payload/mishkan/agents/asaph.md +5 -2
- package/payload/mishkan/agents/baruch.md +19 -2
- package/payload/mishkan/agents/benaiah.md +4 -2
- package/payload/mishkan/agents/bezalel.md +4 -2
- package/payload/mishkan/agents/caleb.md +4 -2
- package/payload/mishkan/agents/deborah.md +4 -2
- package/payload/mishkan/agents/elasah.md +4 -2
- package/payload/mishkan/agents/eliashib.md +4 -2
- package/payload/mishkan/agents/ezra.md +4 -2
- package/payload/mishkan/agents/hanun.md +5 -2
- package/payload/mishkan/agents/hiram.md +5 -2
- package/payload/mishkan/agents/hizkiah.md +5 -2
- package/payload/mishkan/agents/huldah.md +4 -2
- package/payload/mishkan/agents/huram.md +4 -2
- package/payload/mishkan/agents/hushai.md +5 -2
- package/payload/mishkan/agents/igal.md +4 -2
- package/payload/mishkan/agents/ira.md +5 -2
- package/payload/mishkan/agents/jahaziel.md +5 -2
- package/payload/mishkan/agents/jakin.md +4 -2
- package/payload/mishkan/agents/jehonathan.md +5 -2
- package/payload/mishkan/agents/jehoshaphat.md +4 -2
- package/payload/mishkan/agents/joab.md +5 -2
- package/payload/mishkan/agents/joah.md +5 -2
- package/payload/mishkan/agents/maaseiah.md +4 -2
- package/payload/mishkan/agents/meremoth.md +5 -2
- package/payload/mishkan/agents/meshullam.md +5 -2
- package/payload/mishkan/agents/nathan.md +5 -2
- package/payload/mishkan/agents/nehemiah.md +4 -2
- package/payload/mishkan/agents/obed.md +4 -2
- package/payload/mishkan/agents/oholiab.md +5 -2
- package/payload/mishkan/agents/palal.md +5 -2
- package/payload/mishkan/agents/phinehas.md +4 -2
- package/payload/mishkan/agents/rehum.md +4 -2
- package/payload/mishkan/agents/salma.md +5 -2
- package/payload/mishkan/agents/seraiah.md +4 -2
- package/payload/mishkan/agents/shallum.md +5 -2
- package/payload/mishkan/agents/shaphan.md +4 -2
- package/payload/mishkan/agents/shemaiah.md +4 -2
- package/payload/mishkan/agents/shevna.md +5 -2
- package/payload/mishkan/agents/uriah.md +5 -2
- package/payload/mishkan/agents/zaccur.md +4 -2
- package/payload/mishkan/agents/zadok.md +5 -2
- package/payload/mishkan/agents/zerubbabel.md +4 -2
- package/payload/mishkan/commands/code-graph.md +35 -0
- package/payload/mishkan/commands/eval-baruch.md +57 -0
- package/payload/mishkan/commands/mishkan-org-reference.md +58 -0
- package/payload/mishkan/commands/mishkan-skills-misses.md +47 -0
- package/payload/mishkan/commands/mishkan-skills-reindex.md +33 -0
- package/payload/mishkan/commands/skills.md +35 -0
- package/payload/mishkan/commands/sprint-close.md +3 -1
- package/payload/mishkan/hooks/pre-tool-knowledge-route.sh +231 -0
- package/payload/mishkan/hooks/pre-tool-task-skill-route.sh +122 -0
- package/payload/mishkan/hooks/session-start-skill-index.sh +35 -0
- package/payload/mishkan/observability/schema.json +1 -1
- package/payload/mishkan/observability/watch/src/mishkan_watch/__main__.py +84 -2
- package/payload/mishkan/observability/watch/src/mishkan_watch/app.py +64 -3
- package/payload/mishkan/observability/watch/src/mishkan_watch/org_data.py +79 -0
- package/payload/mishkan/observability/watch/src/mishkan_watch/skills_data.py +267 -0
- package/payload/mishkan/observability/watch/src/mishkan_watch/tabs/agents.py +33 -1
- package/payload/mishkan/observability/watch/src/mishkan_watch/tabs/knowledge.py +118 -9
- package/payload/mishkan/observability/watch/src/mishkan_watch/tabs/live.py +102 -2
- package/payload/mishkan/observability/watch/src/mishkan_watch/tabs/org.py +139 -0
- package/payload/mishkan/observability/watch/src/mishkan_watch/tabs/skills.py +187 -0
- package/payload/mishkan/observability/watch/src/mishkan_watch/tabs/usage.py +377 -0
- package/payload/mishkan/observability/watch/src/mishkan_watch/tabs/workflows.py +199 -27
- package/payload/mishkan/observability/watch/src/mishkan_watch/theme.tcss +78 -4
- package/payload/mishkan/observability/watchd/src/mishkan_watchd/__main__.py +36 -6
- package/payload/mishkan/observability/watchd/src/mishkan_watchd/sources/bus_tail.py +16 -3
- package/payload/mishkan/observability/watchd/src/mishkan_watchd/sources/graphify_tail.py +220 -0
- package/payload/mishkan/observability/watchd/src/mishkan_watchd/sources/worktree_poll.py +13 -2
- package/payload/mishkan/observability/watchd/src/mishkan_watchd/state.py +157 -3
- package/payload/mishkan/observability/watchd/tests/test_state.py +6 -2
- package/payload/mishkan/org/org.json +141 -0
- package/payload/mishkan/scripts/pre-commit-eval-gate.sh +50 -0
- package/payload/mishkan/scripts/skill-discovery-indexer.py +462 -0
- package/payload/mishkan/scripts/skill-discovery-misses.py +173 -0
- package/payload/mishkan/scripts/skill-discovery-router.py +457 -0
- package/payload/mishkan/scripts/skill-discovery-smoke.sh +156 -0
- package/payload/mishkan/skills/graphify-query-craft/SKILL.md +162 -0
- package/payload/mishkan/skills/mishkan-init/SKILL.md +15 -0
- package/payload/mishkan/skills/skill-discovery/SKILL.md +120 -0
- package/payload/mishkan/templates/case-node.schema.json +1 -0
- package/payload/mishkan/templates/observability-log.schema.json +1 -0
- package/payload/mishkan/workflows/README.md +78 -13
- package/payload/mishkan/workflows/chosheb-feature-ship.js +75 -0
- package/payload/mishkan/workflows/migdal-dr-drill.js +94 -0
- package/payload/mishkan/workflows/migdal-infra-change.js +67 -0
- package/payload/mishkan/workflows/mishkan-blast-radius.js +144 -0
- package/payload/mishkan/workflows/mishkan-init.js +58 -0
- package/payload/mishkan/workflows/mishkan-knowledge-gap-discovery.js +121 -0
- package/payload/mishkan/workflows/mishkan-standards-rollout.js +153 -0
- package/payload/mishkan/workflows/mishmar-security-gate.js +83 -0
- package/payload/mishkan/workflows/panim-ds-rollout.js +83 -0
- package/payload/mishkan/workflows/sefer-release-notes.js +85 -0
- package/payload/mishkan/workflows/yasad-data-migration-wave.js +78 -0
- package/payload/mishkan/workflows/yasad-schema-evolution.js +76 -0
- package/payload/mishkan/templates/user-CLAUDE.md +0 -62
|
@@ -62,5 +62,7 @@ Approval gate via `/plan`. pnpm only. WCAG 2.2 AA. Core Web Vitals budgets.
|
|
|
62
62
|
|
|
63
63
|
## Dynamic Context Injection Point
|
|
64
64
|
|
|
65
|
-
<!--
|
|
66
|
-
|
|
65
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
66
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
67
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
68
|
+
parent session context, not injected here. -->
|
|
@@ -42,6 +42,7 @@ you do not write or block code (that is Ira/Joab/Benaiah).
|
|
|
42
42
|
## Skills (invoke on demand)
|
|
43
43
|
|
|
44
44
|
- `hushai-security-advisor-craft` — ASVS prioritisation + delivery-vs-security counsel; advisory-only
|
|
45
|
+
- `graphify-query-craft` — query the project code-structure graph (~1.8k tokens vs ~80k+ grep+Read) before reading source for any structural question (who calls X, what depends on Y, where is the entry point). Per D-009 amended scope: all code-touching dev agents.
|
|
45
46
|
- `security-threat-model` — advisory threat-model review
|
|
46
47
|
- `code-review-security` — advisory security review
|
|
47
48
|
|
|
@@ -55,5 +56,7 @@ facts. English for all output.
|
|
|
55
56
|
|
|
56
57
|
## Dynamic Context Injection Point
|
|
57
58
|
|
|
58
|
-
<!--
|
|
59
|
-
|
|
59
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
60
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
61
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
62
|
+
parent session context, not injected here. -->
|
|
@@ -54,5 +54,7 @@ No `/plan` (collect-only role).
|
|
|
54
54
|
|
|
55
55
|
## Dynamic Context Injection Point
|
|
56
56
|
|
|
57
|
-
<!--
|
|
58
|
-
|
|
57
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
58
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
59
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
60
|
+
parent session context, not injected here. -->
|
|
@@ -65,6 +65,7 @@ finding:
|
|
|
65
65
|
## Skills (invoke on demand)
|
|
66
66
|
|
|
67
67
|
- `ira-code-security-craft` — any code-level security review (the
|
|
68
|
+
- `graphify-query-craft` — query the project code-structure graph (~1.8k tokens vs ~80k+ grep+Read) before reading source for any structural question (who calls X, what depends on Y, where is the entry point). Per D-009 amended scope: all code-touching dev agents.
|
|
68
69
|
pre-block rubric, the false-positive guard list, severity calibration,
|
|
69
70
|
and durable remediation patterns — the depth lives in this skill)
|
|
70
71
|
- `code-review-security` — code-level security review
|
|
@@ -82,5 +83,7 @@ facts. English for all output.
|
|
|
82
83
|
|
|
83
84
|
## Dynamic Context Injection Point
|
|
84
85
|
|
|
85
|
-
<!--
|
|
86
|
-
|
|
86
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
87
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
88
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
89
|
+
parent session context, not injected here. -->
|
|
@@ -51,6 +51,7 @@ finding:
|
|
|
51
51
|
## Skills (invoke on demand)
|
|
52
52
|
|
|
53
53
|
- `qa-evaluation-craft` — anchor-every-finding + structured-findings discipline (shared with uriah)
|
|
54
|
+
- `graphify-query-craft` — query the project code-structure graph (~1.8k tokens vs ~80k+ grep+Read) before reading source for any structural question (who calls X, what depends on Y, where is the entry point). Per D-009 amended scope: all code-touching dev agents.
|
|
54
55
|
- `e2e-testing-patterns` — front-end E2E review
|
|
55
56
|
- `webapp-testing` — test strategy review
|
|
56
57
|
- `javascript-testing-patterns` — unit/integration test review
|
|
@@ -67,5 +68,7 @@ No `/plan` (evaluate against known rules).
|
|
|
67
68
|
|
|
68
69
|
## Dynamic Context Injection Point
|
|
69
70
|
|
|
70
|
-
<!--
|
|
71
|
-
|
|
71
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
72
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
73
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
74
|
+
parent session context, not injected here. -->
|
|
@@ -62,5 +62,7 @@ facts. English for all output.
|
|
|
62
62
|
|
|
63
63
|
## Dynamic Context Injection Point
|
|
64
64
|
|
|
65
|
-
<!--
|
|
66
|
-
|
|
65
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
66
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
67
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
68
|
+
parent session context, not injected here. -->
|
|
@@ -43,6 +43,7 @@ You take structured graph knowledge and make it legible. You publish.
|
|
|
43
43
|
## Skills (invoke on demand)
|
|
44
44
|
|
|
45
45
|
- `jehonathan-publication-craft` — Cognee query + Stripe-quality bar + source-grounded publication
|
|
46
|
+
- `graphify-query-craft` — query the project code-structure graph (~1.8k tokens vs ~80k+ grep+Read) before reading source for any structural question (who calls X, what depends on Y, where is the entry point). Per D-009 amended scope: all code-touching dev agents.
|
|
46
47
|
- `doc-coauthoring` — knowledge publication
|
|
47
48
|
- `context-compress` — compress findings before publish
|
|
48
49
|
|
|
@@ -58,5 +59,7 @@ Diátaxis quadrant declared.
|
|
|
58
59
|
|
|
59
60
|
## Dynamic Context Injection Point
|
|
60
61
|
|
|
61
|
-
<!--
|
|
62
|
-
|
|
62
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
63
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
64
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
65
|
+
parent session context, not injected here. -->
|
|
@@ -64,5 +64,7 @@ Diátaxis quadrant on every doc. MADR for ADRs. Keep a Changelog. No undated doc
|
|
|
64
64
|
|
|
65
65
|
## Dynamic Context Injection Point
|
|
66
66
|
|
|
67
|
-
<!--
|
|
68
|
-
|
|
67
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
68
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
69
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
70
|
+
parent session context, not injected here. -->
|
|
@@ -53,6 +53,7 @@ finding:
|
|
|
53
53
|
## Skills (invoke on demand)
|
|
54
54
|
|
|
55
55
|
- `joab-app-security-craft` — auth flows + CSRF/XSS + OWASP API Top 10 across surfaces
|
|
56
|
+
- `graphify-query-craft` — query the project code-structure graph (~1.8k tokens vs ~80k+ grep+Read) before reading source for any structural question (who calls X, what depends on Y, where is the entry point). Per D-009 amended scope: all code-touching dev agents.
|
|
56
57
|
- `api-security-best-practices` — API attack-surface review
|
|
57
58
|
- `auth-implementation-patterns` — auth flow review
|
|
58
59
|
- `code-review-security` — client/surface security review
|
|
@@ -67,5 +68,7 @@ facts. English for all output.
|
|
|
67
68
|
|
|
68
69
|
## Dynamic Context Injection Point
|
|
69
70
|
|
|
70
|
-
<!--
|
|
71
|
-
|
|
71
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
72
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
73
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
74
|
+
parent session context, not injected here. -->
|
|
@@ -42,6 +42,7 @@ You document the specific project: its decisions, its operations, its history.
|
|
|
42
42
|
## Skills (invoke on demand)
|
|
43
43
|
|
|
44
44
|
- `documentation-craft` — Diátaxis + pull-based discipline + source-grounded writing (shared with the other 2 Sefer scope specialists)
|
|
45
|
+
- `graphify-query-craft` — query the project code-structure graph (~1.8k tokens vs ~80k+ grep+Read) before reading source for any structural question (who calls X, what depends on Y, where is the entry point). Per D-009 amended scope: all code-touching dev agents.
|
|
45
46
|
- `architecture-decision-records` — project-layer ADRs
|
|
46
47
|
- `doc-coauthoring` — runbook / changelog authoring
|
|
47
48
|
- `changelog-automation` — release-note generation
|
|
@@ -58,5 +59,7 @@ MADR for ADRs. Keep a Changelog. Diátaxis quadrant.
|
|
|
58
59
|
|
|
59
60
|
## Dynamic Context Injection Point
|
|
60
61
|
|
|
61
|
-
<!--
|
|
62
|
-
|
|
62
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
63
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
64
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
65
|
+
parent session context, not injected here. -->
|
|
@@ -57,5 +57,7 @@ No `/plan` (collect-only role).
|
|
|
57
57
|
|
|
58
58
|
## Dynamic Context Injection Point
|
|
59
59
|
|
|
60
|
-
<!--
|
|
61
|
-
|
|
60
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
61
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
62
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
63
|
+
parent session context, not injected here. -->
|
|
@@ -44,6 +44,7 @@ You work the delivery layer: CI/CD, build, release automation.
|
|
|
44
44
|
## Skills (invoke on demand)
|
|
45
45
|
|
|
46
46
|
- `meremoth-devops-craft` — pipeline stages + SOPS marshalling + CI-and-remote-script rule
|
|
47
|
+
- `graphify-query-craft` — query the project code-structure graph (~1.8k tokens vs ~80k+ grep+Read) before reading source for any structural question (who calls X, what depends on Y, where is the entry point). Per D-009 amended scope: all code-touching dev agents.
|
|
47
48
|
- `github-actions-templates` — GitHub Actions pipelines
|
|
48
49
|
- `gitlab-ci-patterns` — GitLab CI pipelines
|
|
49
50
|
- `deployment-pipeline-design` — release orchestration
|
|
@@ -61,5 +62,7 @@ No `:latest`. SOPS for secrets.
|
|
|
61
62
|
|
|
62
63
|
## Dynamic Context Injection Point
|
|
63
64
|
|
|
64
|
-
<!--
|
|
65
|
-
|
|
65
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
66
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
67
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
68
|
+
parent session context, not injected here. -->
|
|
@@ -46,6 +46,7 @@ change, the alternatives, what is affected, the rollback path.
|
|
|
46
46
|
## Skills (invoke on demand)
|
|
47
47
|
|
|
48
48
|
- `meshullam-infra-design-craft` — C4 + Compose/Terraform/Helm + default-deny networking
|
|
49
|
+
- `graphify-query-craft` — query the project code-structure graph (~1.8k tokens vs ~80k+ grep+Read) before reading source for any structural question (who calls X, what depends on Y, where is the entry point). Per D-009 amended scope: all code-touching dev agents.
|
|
49
50
|
- `deployment-pipeline-design` — delivery topology
|
|
50
51
|
- `multi-cloud-architecture` — cross-cloud topology
|
|
51
52
|
- `terraform-module-library` — Terraform module work
|
|
@@ -63,5 +64,7 @@ No `:latest`. All resources tagged. SOPS for secrets.
|
|
|
63
64
|
|
|
64
65
|
## Dynamic Context Injection Point
|
|
65
66
|
|
|
66
|
-
<!--
|
|
67
|
-
|
|
67
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
68
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
69
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
70
|
+
parent session context, not injected here. -->
|
|
@@ -49,6 +49,7 @@ approval needed. Capture the outcome as an ADR (MADR) for Sefer to publish.
|
|
|
49
49
|
## Skills (invoke on demand)
|
|
50
50
|
|
|
51
51
|
- `nathan-architecture-craft` — any architecture decision (how Nathan reasons,
|
|
52
|
+
- `graphify-query-craft` — query the project code-structure graph (~1.8k tokens vs ~80k+ grep+Read) before reading source for any structural question (who calls X, what depends on Y, where is the entry point). Per D-009 amended scope: all code-touching dev agents.
|
|
52
53
|
with worked examples — the depth lives in this skill, not in this file)
|
|
53
54
|
- `architecture-decision-records` — writing ADRs
|
|
54
55
|
- `microservices-patterns` — service decomposition decisions
|
|
@@ -66,5 +67,7 @@ Approval gate via `/plan`.
|
|
|
66
67
|
|
|
67
68
|
## Dynamic Context Injection Point
|
|
68
69
|
|
|
69
|
-
<!--
|
|
70
|
-
|
|
70
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
71
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
72
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
73
|
+
parent session context, not injected here. -->
|
|
@@ -89,5 +89,7 @@ Approval gate on consequential decisions via `/plan`.
|
|
|
89
89
|
|
|
90
90
|
## Dynamic Context Injection Point
|
|
91
91
|
|
|
92
|
-
<!--
|
|
93
|
-
|
|
92
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
93
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
94
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
95
|
+
parent session context, not injected here. -->
|
|
@@ -56,5 +56,7 @@ Core Web Vitals budgets (LCP < 2.5s, INP < 200ms, CLS < 0.1).
|
|
|
56
56
|
|
|
57
57
|
## Dynamic Context Injection Point
|
|
58
58
|
|
|
59
|
-
<!--
|
|
60
|
-
|
|
59
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
60
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
61
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
62
|
+
parent session context, not injected here. -->
|
|
@@ -46,6 +46,7 @@ Plan before a **design-system or state-management architectural change**.
|
|
|
46
46
|
## Skills (invoke on demand)
|
|
47
47
|
|
|
48
48
|
- `oholiab-design-system-craft` — tokens + components + theming + cost-of-extension (the depth lives here)
|
|
49
|
+
- `graphify-query-craft` — query the project code-structure graph (~1.8k tokens vs ~80k+ grep+Read) before reading source for any structural question (who calls X, what depends on Y, where is the entry point). Per D-009 amended scope: all code-touching dev agents.
|
|
49
50
|
- `design-system-patterns` — DS architecture and tokens
|
|
50
51
|
- `tailwind-design-system` — Tailwind tokenisation
|
|
51
52
|
- `web-component-design` — component contracts
|
|
@@ -63,5 +64,7 @@ pnpm only. WCAG 2.2 AA. Core Web Vitals budgets. TanStack Query/Router.
|
|
|
63
64
|
|
|
64
65
|
## Dynamic Context Injection Point
|
|
65
66
|
|
|
66
|
-
<!--
|
|
67
|
-
|
|
67
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
68
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
69
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
70
|
+
parent session context, not injected here. -->
|
|
@@ -43,6 +43,7 @@ You work at the structural intersection: OS, virtualisation, networking.
|
|
|
43
43
|
## Skills (invoke on demand)
|
|
44
44
|
|
|
45
45
|
- `palal-systems-craft` — diagnose-before-fix + two-causes + runtime/network/iptables discipline
|
|
46
|
+
- `graphify-query-craft` — query the project code-structure graph (~1.8k tokens vs ~80k+ grep+Read) before reading source for any structural question (who calls X, what depends on Y, where is the entry point). Per D-009 amended scope: all code-touching dev agents.
|
|
46
47
|
- `bash-defensive-patterns` — shell hardening
|
|
47
48
|
- `k8s-security-policies` — NetworkPolicy / PSP / RBAC
|
|
48
49
|
- `mtls-configuration` — mTLS plumbing
|
|
@@ -59,5 +60,7 @@ Two root causes on non-trivial failures (e.g. an incident is often applicative +
|
|
|
59
60
|
|
|
60
61
|
## Dynamic Context Injection Point
|
|
61
62
|
|
|
62
|
-
<!--
|
|
63
|
-
|
|
63
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
64
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
65
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
66
|
+
parent session context, not injected here. -->
|
|
@@ -69,5 +69,7 @@ Two root causes on non-trivial failures. Approval gate via `/plan`.
|
|
|
69
69
|
|
|
70
70
|
## Dynamic Context Injection Point
|
|
71
71
|
|
|
72
|
-
<!--
|
|
73
|
-
|
|
72
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
73
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
74
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
75
|
+
parent session context, not injected here. -->
|
|
@@ -56,5 +56,7 @@ facts. English for all output.
|
|
|
56
56
|
|
|
57
57
|
## Dynamic Context Injection Point
|
|
58
58
|
|
|
59
|
-
<!--
|
|
60
|
-
|
|
59
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
60
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
61
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
62
|
+
parent session context, not injected here. -->
|
|
@@ -46,6 +46,7 @@ Plan before any **state-management architectural change**.
|
|
|
46
46
|
## Skills (invoke on demand)
|
|
47
47
|
|
|
48
48
|
- `salma-frontend-implementation-craft` — TanStack + tokens + state-management discipline (the depth lives here)
|
|
49
|
+
- `graphify-query-craft` — query the project code-structure graph (~1.8k tokens vs ~80k+ grep+Read) before reading source for any structural question (who calls X, what depends on Y, where is the entry point). Per D-009 amended scope: all code-touching dev agents.
|
|
49
50
|
- `react-modernization` — React refactors and patterns
|
|
50
51
|
- `nextjs-app-router-patterns` — Next.js App Router work
|
|
51
52
|
- `responsive-design` — responsive layouts
|
|
@@ -65,5 +66,7 @@ pnpm only. WCAG 2.2 AA. Core Web Vitals budgets.
|
|
|
65
66
|
|
|
66
67
|
## Dynamic Context Injection Point
|
|
67
68
|
|
|
68
|
-
<!--
|
|
69
|
-
|
|
69
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
70
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
71
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
72
|
+
parent session context, not injected here. -->
|
|
@@ -69,5 +69,7 @@ Diátaxis quadrant declared.
|
|
|
69
69
|
|
|
70
70
|
## Dynamic Context Injection Point
|
|
71
71
|
|
|
72
|
-
<!--
|
|
73
|
-
|
|
72
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
73
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
74
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
75
|
+
parent session context, not injected here. -->
|
|
@@ -48,6 +48,7 @@ data-safety implications, the rollback path, and what depends on the schema.
|
|
|
48
48
|
## Skills (invoke on demand)
|
|
49
49
|
|
|
50
50
|
- `shallum-database-craft` — two-shape modeling + EXPLAIN-as-test + zero-downtime migration patterns
|
|
51
|
+
- `graphify-query-craft` — query the project code-structure graph (~1.8k tokens vs ~80k+ grep+Read) before reading source for any structural question (who calls X, what depends on Y, where is the entry point). Per D-009 amended scope: all code-touching dev agents.
|
|
51
52
|
- `postgresql-table-design` — schema design
|
|
52
53
|
- `sql-optimization-patterns` — query tuning
|
|
53
54
|
- `database-migration` — zero-downtime migration planning
|
|
@@ -62,5 +63,7 @@ facts. English for all output.
|
|
|
62
63
|
|
|
63
64
|
## Dynamic Context Injection Point
|
|
64
65
|
|
|
65
|
-
<!--
|
|
66
|
-
|
|
66
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
67
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
68
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
69
|
+
parent session context, not injected here. -->
|
|
@@ -60,5 +60,7 @@ facts. English for all output.
|
|
|
60
60
|
|
|
61
61
|
## Dynamic Context Injection Point
|
|
62
62
|
|
|
63
|
-
<!--
|
|
64
|
-
|
|
63
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
64
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
65
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
66
|
+
parent session context, not injected here. -->
|
|
@@ -63,5 +63,7 @@ facts. English for all output.
|
|
|
63
63
|
|
|
64
64
|
## Dynamic Context Injection Point
|
|
65
65
|
|
|
66
|
-
<!--
|
|
67
|
-
|
|
66
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
67
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
68
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
69
|
+
parent session context, not injected here. -->
|
|
@@ -40,6 +40,7 @@ You embed with the teams and document what they produce.
|
|
|
40
40
|
## Skills (invoke on demand)
|
|
41
41
|
|
|
42
42
|
- `documentation-craft` — Diátaxis + pull-based discipline + source-grounded writing (shared with the other 2 Sefer scope specialists)
|
|
43
|
+
- `graphify-query-craft` — query the project code-structure graph (~1.8k tokens vs ~80k+ grep+Read) before reading source for any structural question (who calls X, what depends on Y, where is the entry point). Per D-009 amended scope: all code-touching dev agents.
|
|
43
44
|
- `doc-coauthoring` — team-layer doc authoring
|
|
44
45
|
|
|
45
46
|
## Constraints
|
|
@@ -54,5 +55,7 @@ Diátaxis quadrant declared.
|
|
|
54
55
|
|
|
55
56
|
## Dynamic Context Injection Point
|
|
56
57
|
|
|
57
|
-
<!--
|
|
58
|
-
|
|
58
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
59
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
60
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
61
|
+
parent session context, not injected here. -->
|
|
@@ -51,6 +51,7 @@ finding:
|
|
|
51
51
|
## Skills (invoke on demand)
|
|
52
52
|
|
|
53
53
|
- `qa-evaluation-craft` — anchor-every-finding + structured-findings discipline (shared with jahaziel)
|
|
54
|
+
- `graphify-query-craft` — query the project code-structure graph (~1.8k tokens vs ~80k+ grep+Read) before reading source for any structural question (who calls X, what depends on Y, where is the entry point). Per D-009 amended scope: all code-touching dev agents.
|
|
54
55
|
- `python-testing-patterns` — test-quality evaluation
|
|
55
56
|
- `code-review-excellence` — backend code review rubric
|
|
56
57
|
|
|
@@ -66,5 +67,7 @@ No `/plan` (evaluate against known rules).
|
|
|
66
67
|
|
|
67
68
|
## Dynamic Context Injection Point
|
|
68
69
|
|
|
69
|
-
<!--
|
|
70
|
-
|
|
70
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
71
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
72
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
73
|
+
parent session context, not injected here. -->
|
|
@@ -54,5 +54,7 @@ No `/plan` (collect-only role).
|
|
|
54
54
|
|
|
55
55
|
## Dynamic Context Injection Point
|
|
56
56
|
|
|
57
|
-
<!--
|
|
58
|
-
|
|
57
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
58
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
59
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
60
|
+
parent session context, not injected here. -->
|
|
@@ -48,6 +48,7 @@ guarantees to be fixed, and what they bind.
|
|
|
48
48
|
## Skills (invoke on demand)
|
|
49
49
|
|
|
50
50
|
- `zadok-contract-craft` — any contract decision (how Zadok reasons,
|
|
51
|
+
- `graphify-query-craft` — query the project code-structure graph (~1.8k tokens vs ~80k+ grep+Read) before reading source for any structural question (who calls X, what depends on Y, where is the entry point). Per D-009 amended scope: all code-touching dev agents.
|
|
51
52
|
with worked examples — the depth lives in this skill, not in this file)
|
|
52
53
|
- `openapi-spec-generation` — contract authoring
|
|
53
54
|
- `fastapi-templates` — FastAPI scaffolding (when the contract lives on FastAPI)
|
|
@@ -63,5 +64,7 @@ facts. English for all output.
|
|
|
63
64
|
|
|
64
65
|
## Dynamic Context Injection Point
|
|
65
66
|
|
|
66
|
-
<!--
|
|
67
|
-
|
|
67
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
68
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
69
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
70
|
+
parent session context, not injected here. -->
|
|
@@ -65,5 +65,7 @@ OpenAPI 3.1 contract before any endpoint. Approval gate via `/plan`.
|
|
|
65
65
|
|
|
66
66
|
## Dynamic Context Injection Point
|
|
67
67
|
|
|
68
|
-
<!--
|
|
69
|
-
|
|
68
|
+
<!-- Cacheable prefix boundary. Everything above this line must stay
|
|
69
|
+
byte-identical between calls for prompt caching to fire. Project
|
|
70
|
+
sprint state from ./CLAUDE.md is loaded by Claude Code into the
|
|
71
|
+
parent session context, not injected here. -->
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-graph
|
|
3
|
+
description: Inspect, refresh, or open the Graphify code-structure graph for the current project. Wraps `npx mishkan-harness code-graph` so it's reachable from any Claude Code session. Three subcommands — `status` (default, prints nodes/edges/last-scan), `scan` (runs `graphify update .` to refresh the index), `open` (opens graph.html in the browser). Use when you need to know the current state of the code graph, when you've made code changes and want a fresh index, or when you want to visually browse the call structure.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /code-graph
|
|
7
|
+
|
|
8
|
+
Wrapper for the harness's code-graph (Graphify) inspection. Runs the
|
|
9
|
+
`npx mishkan-harness code-graph` CLI subcommand on behalf of the user.
|
|
10
|
+
|
|
11
|
+
## Subcommands
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npx mishkan-harness code-graph status # default — nodes/edges/last-scan
|
|
15
|
+
npx mishkan-harness code-graph scan # refresh the index (graphify update .)
|
|
16
|
+
npx mishkan-harness code-graph open # open graph.html in browser
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## When to suggest each
|
|
20
|
+
|
|
21
|
+
- **`status`** — first action when the user asks "is graphify up to date" or "how big is my graph". Cheap, no side effects.
|
|
22
|
+
- **`scan`** — after a meaningful round of code edits (refactor, new module, dependency added). Or when the advisory hook fires and the agent isn't sure whether the graph reflects current state.
|
|
23
|
+
- **`open`** — when the user asks to "see" or "visualise" the call graph. Opens the static HTML Graphify writes alongside `graph.json`.
|
|
24
|
+
|
|
25
|
+
## Behaviour
|
|
26
|
+
|
|
27
|
+
- Looks for `graphify-out/` in the current project root. If missing, surfaces the install hint (`graphify update .` to create one, or `uv tool install "graphifyy>=0.8.33"` if graphify itself isn't installed).
|
|
28
|
+
- Always succeeds with output even when the graph is empty or stale — the CLI is designed to be informative, not gating.
|
|
29
|
+
- Stateful: `scan` modifies `graphify-out/`. `status` and `open` are read-only.
|
|
30
|
+
|
|
31
|
+
## See also
|
|
32
|
+
|
|
33
|
+
- ADR `D-008` and `D-009` — the cost rationale and the advisory-hook design
|
|
34
|
+
- `docs/usage/11-graphify.md` — full usage chapter
|
|
35
|
+
- `graphify-query-craft` skill — when and how the 20 code-touching agents query
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eval-baruch
|
|
3
|
+
description: Run the Baruch contract eval — validates research-log schema enforcement (valid fixtures pass, invalid fixtures fail) and asserts the golden case's semantic shape. Use BEFORE committing any change to research-log.schema.json, validate-research-log.sh, agents/baruch.md, or the Baruch craft skill. Does NOT call an LLM — it's a fast deterministic contract test (typically < 5s).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /eval-baruch
|
|
7
|
+
|
|
8
|
+
Exercise Baruch's contract end-to-end without calling an LLM:
|
|
9
|
+
|
|
10
|
+
1. Every fixture under `evals/baruch/fixtures/valid/` MUST validate (catches over-strictness).
|
|
11
|
+
2. Every fixture under `evals/baruch/fixtures/invalid/` MUST be rejected (catches under-strictness).
|
|
12
|
+
3. The golden case `evals/baruch/golden_case/produced.json` MUST validate AND satisfy every jq assertion in `expected.yaml`.
|
|
13
|
+
|
|
14
|
+
## How to invoke
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
cd payload/mishkan/evals/baruch && ./run.sh
|
|
18
|
+
echo "exit: $?"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Or from anywhere in the harness checkout:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
bash payload/mishkan/evals/baruch/run.sh
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Exit codes:
|
|
28
|
+
- `0` → all checks passed
|
|
29
|
+
- `1` → one or more checks failed
|
|
30
|
+
- `2` → environment problem (missing `jq`, validator, or schema)
|
|
31
|
+
|
|
32
|
+
## When to run
|
|
33
|
+
|
|
34
|
+
- **Before any edit** to: `research-log.schema.json`, `validate-research-log.sh`, `agents/baruch.md`, the Baruch craft skill, or the eval itself.
|
|
35
|
+
- **After any such edit**, before opening a PR (the GitHub workflow `.github/workflows/eval-baruch.yml` also runs on PR — local run catches regressions faster).
|
|
36
|
+
- **As a sanity check** when investigating any Baruch output drift.
|
|
37
|
+
|
|
38
|
+
## When NOT to run
|
|
39
|
+
|
|
40
|
+
- Day-to-day code changes that don't touch the contract surface.
|
|
41
|
+
- Live LLM testing — this eval doesn't run Baruch through an LLM. To do that, run the actual research pipeline against `golden_case/input.yaml`, compare the live output to `produced.json`, and update both `produced.json` and `expected.yaml` deliberately if the change is intentional.
|
|
42
|
+
|
|
43
|
+
## What to do on failure
|
|
44
|
+
|
|
45
|
+
| Symptom | Likely cause | Action |
|
|
46
|
+
|---|---|---|
|
|
47
|
+
| valid fixture rejected | schema/validator too strict OR fixture broken | compare schema vs fixture; fix whichever is wrong |
|
|
48
|
+
| invalid fixture accepted | validator missing a check | add the missing check; re-run |
|
|
49
|
+
| golden case fails expected.yaml | Baruch output drift (intentional or regression) | inspect diff; update `produced.json` + `expected.yaml` together if intentional |
|
|
50
|
+
|
|
51
|
+
## See also
|
|
52
|
+
|
|
53
|
+
- Eval README: `payload/mishkan/evals/baruch/README.md`
|
|
54
|
+
- Schema: `payload/mishkan/templates/research-log.schema.json`
|
|
55
|
+
- Validator: `payload/mishkan/scripts/validate-research-log.sh`
|
|
56
|
+
- Baruch agent: `payload/mishkan/agents/baruch.md`
|
|
57
|
+
- CI workflow: `.github/workflows/eval-baruch.yml`
|