mishkan-harness 0.1.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.
Files changed (139) hide show
  1. package/README.md +121 -134
  2. package/bin/mishkan.js +810 -26
  3. package/docs/design/MISHKAN_decisions.md +842 -0
  4. package/docs/design/MISHKAN_harness_design.md +1 -33
  5. package/docs/design/MISHKAN_observability.md +1027 -0
  6. package/docs/research/graphify-token-saving-poc.md +108 -0
  7. package/docs/usage/01-installation.md +40 -12
  8. package/docs/usage/09-workflows.md +74 -4
  9. package/docs/usage/10-observability.md +173 -0
  10. package/docs/usage/11-graphify.md +264 -0
  11. package/docs/usage/12-skill-discovery.md +294 -0
  12. package/docs/usage/README.md +5 -2
  13. package/package.json +1 -1
  14. package/payload/install/settings.hooks.json +33 -0
  15. package/payload/mishkan/AGENT_SPEC.md +25 -7
  16. package/payload/mishkan/agents/ahikam.md +4 -2
  17. package/payload/mishkan/agents/aholiab.md +4 -2
  18. package/payload/mishkan/agents/asaph.md +5 -2
  19. package/payload/mishkan/agents/baruch.md +19 -2
  20. package/payload/mishkan/agents/benaiah.md +4 -2
  21. package/payload/mishkan/agents/bezalel.md +4 -2
  22. package/payload/mishkan/agents/caleb.md +4 -2
  23. package/payload/mishkan/agents/deborah.md +4 -2
  24. package/payload/mishkan/agents/elasah.md +4 -2
  25. package/payload/mishkan/agents/eliashib.md +4 -2
  26. package/payload/mishkan/agents/ezra.md +4 -2
  27. package/payload/mishkan/agents/hanun.md +5 -2
  28. package/payload/mishkan/agents/hiram.md +5 -2
  29. package/payload/mishkan/agents/hizkiah.md +5 -2
  30. package/payload/mishkan/agents/huldah.md +4 -2
  31. package/payload/mishkan/agents/huram.md +4 -2
  32. package/payload/mishkan/agents/hushai.md +5 -2
  33. package/payload/mishkan/agents/igal.md +4 -2
  34. package/payload/mishkan/agents/ira.md +5 -2
  35. package/payload/mishkan/agents/jahaziel.md +5 -2
  36. package/payload/mishkan/agents/jakin.md +4 -2
  37. package/payload/mishkan/agents/jehonathan.md +5 -2
  38. package/payload/mishkan/agents/jehoshaphat.md +4 -2
  39. package/payload/mishkan/agents/joab.md +5 -2
  40. package/payload/mishkan/agents/joah.md +5 -2
  41. package/payload/mishkan/agents/maaseiah.md +4 -2
  42. package/payload/mishkan/agents/meremoth.md +5 -2
  43. package/payload/mishkan/agents/meshullam.md +5 -2
  44. package/payload/mishkan/agents/nathan.md +5 -2
  45. package/payload/mishkan/agents/nehemiah.md +4 -2
  46. package/payload/mishkan/agents/obed.md +4 -2
  47. package/payload/mishkan/agents/oholiab.md +5 -2
  48. package/payload/mishkan/agents/palal.md +5 -2
  49. package/payload/mishkan/agents/phinehas.md +4 -2
  50. package/payload/mishkan/agents/rehum.md +4 -2
  51. package/payload/mishkan/agents/salma.md +5 -2
  52. package/payload/mishkan/agents/seraiah.md +4 -2
  53. package/payload/mishkan/agents/shallum.md +5 -2
  54. package/payload/mishkan/agents/shaphan.md +4 -2
  55. package/payload/mishkan/agents/shemaiah.md +4 -2
  56. package/payload/mishkan/agents/shevna.md +5 -2
  57. package/payload/mishkan/agents/uriah.md +5 -2
  58. package/payload/mishkan/agents/zaccur.md +4 -2
  59. package/payload/mishkan/agents/zadok.md +5 -2
  60. package/payload/mishkan/agents/zerubbabel.md +4 -2
  61. package/payload/mishkan/commands/code-graph.md +35 -0
  62. package/payload/mishkan/commands/eval-baruch.md +57 -0
  63. package/payload/mishkan/commands/mishkan-org-reference.md +58 -0
  64. package/payload/mishkan/commands/mishkan-skills-misses.md +47 -0
  65. package/payload/mishkan/commands/mishkan-skills-reindex.md +33 -0
  66. package/payload/mishkan/commands/skills.md +35 -0
  67. package/payload/mishkan/commands/sprint-close.md +3 -1
  68. package/payload/mishkan/hooks/model-route.py +32 -0
  69. package/payload/mishkan/hooks/post-tool-observe.sh +222 -14
  70. package/payload/mishkan/hooks/pre-tool-knowledge-route.sh +231 -0
  71. package/payload/mishkan/hooks/pre-tool-security.sh +16 -0
  72. package/payload/mishkan/hooks/pre-tool-task-skill-route.sh +122 -0
  73. package/payload/mishkan/hooks/pre-tool-trace.sh +43 -0
  74. package/payload/mishkan/hooks/session-start-skill-index.sh +35 -0
  75. package/payload/mishkan/observability/README.md +100 -0
  76. package/payload/mishkan/observability/bus.py +89 -0
  77. package/payload/mishkan/observability/bus.sh +117 -0
  78. package/payload/mishkan/observability/schema.json +209 -0
  79. package/payload/mishkan/observability/usage_parser.py +211 -0
  80. package/payload/mishkan/observability/watch/README.md +62 -0
  81. package/payload/mishkan/observability/watch/pyproject.toml +22 -0
  82. package/payload/mishkan/observability/watch/src/mishkan_watch/__init__.py +3 -0
  83. package/payload/mishkan/observability/watch/src/mishkan_watch/__main__.py +111 -0
  84. package/payload/mishkan/observability/watch/src/mishkan_watch/app.py +296 -0
  85. package/payload/mishkan/observability/watch/src/mishkan_watch/client.py +134 -0
  86. package/payload/mishkan/observability/watch/src/mishkan_watch/org_data.py +79 -0
  87. package/payload/mishkan/observability/watch/src/mishkan_watch/skills_data.py +267 -0
  88. package/payload/mishkan/observability/watch/src/mishkan_watch/tabs/__init__.py +1 -0
  89. package/payload/mishkan/observability/watch/src/mishkan_watch/tabs/activity.py +100 -0
  90. package/payload/mishkan/observability/watch/src/mishkan_watch/tabs/agents.py +310 -0
  91. package/payload/mishkan/observability/watch/src/mishkan_watch/tabs/knowledge.py +297 -0
  92. package/payload/mishkan/observability/watch/src/mishkan_watch/tabs/live.py +407 -0
  93. package/payload/mishkan/observability/watch/src/mishkan_watch/tabs/org.py +139 -0
  94. package/payload/mishkan/observability/watch/src/mishkan_watch/tabs/skills.py +187 -0
  95. package/payload/mishkan/observability/watch/src/mishkan_watch/tabs/usage.py +377 -0
  96. package/payload/mishkan/observability/watch/src/mishkan_watch/tabs/workflows.py +361 -0
  97. package/payload/mishkan/observability/watch/src/mishkan_watch/theme.tcss +328 -0
  98. package/payload/mishkan/observability/watchd/README.md +59 -0
  99. package/payload/mishkan/observability/watchd/pyproject.toml +23 -0
  100. package/payload/mishkan/observability/watchd/src/mishkan_watchd/__init__.py +3 -0
  101. package/payload/mishkan/observability/watchd/src/mishkan_watchd/__main__.py +260 -0
  102. package/payload/mishkan/observability/watchd/src/mishkan_watchd/lifecycle.py +68 -0
  103. package/payload/mishkan/observability/watchd/src/mishkan_watchd/server.py +134 -0
  104. package/payload/mishkan/observability/watchd/src/mishkan_watchd/sources/__init__.py +6 -0
  105. package/payload/mishkan/observability/watchd/src/mishkan_watchd/sources/bus_tail.py +110 -0
  106. package/payload/mishkan/observability/watchd/src/mishkan_watchd/sources/cognee_poll.py +228 -0
  107. package/payload/mishkan/observability/watchd/src/mishkan_watchd/sources/graphify_tail.py +220 -0
  108. package/payload/mishkan/observability/watchd/src/mishkan_watchd/sources/mcp_probe.py +230 -0
  109. package/payload/mishkan/observability/watchd/src/mishkan_watchd/sources/session_discover.py +74 -0
  110. package/payload/mishkan/observability/watchd/src/mishkan_watchd/sources/session_tail.py +161 -0
  111. package/payload/mishkan/observability/watchd/src/mishkan_watchd/sources/subagent_tail.py +195 -0
  112. package/payload/mishkan/observability/watchd/src/mishkan_watchd/sources/worktree_poll.py +118 -0
  113. package/payload/mishkan/observability/watchd/src/mishkan_watchd/state.py +442 -0
  114. package/payload/mishkan/observability/watchd/tests/test_state.py +81 -0
  115. package/payload/mishkan/org/org.json +141 -0
  116. package/payload/mishkan/scripts/pre-commit-eval-gate.sh +50 -0
  117. package/payload/mishkan/scripts/skill-discovery-indexer.py +462 -0
  118. package/payload/mishkan/scripts/skill-discovery-misses.py +173 -0
  119. package/payload/mishkan/scripts/skill-discovery-router.py +457 -0
  120. package/payload/mishkan/scripts/skill-discovery-smoke.sh +156 -0
  121. package/payload/mishkan/skills/graphify-query-craft/SKILL.md +162 -0
  122. package/payload/mishkan/skills/mishkan-init/SKILL.md +15 -0
  123. package/payload/mishkan/skills/skill-discovery/SKILL.md +120 -0
  124. package/payload/mishkan/templates/case-node.schema.json +1 -0
  125. package/payload/mishkan/templates/observability-log.schema.json +1 -0
  126. package/payload/mishkan/workflows/README.md +78 -13
  127. package/payload/mishkan/workflows/chosheb-feature-ship.js +75 -0
  128. package/payload/mishkan/workflows/migdal-dr-drill.js +94 -0
  129. package/payload/mishkan/workflows/migdal-infra-change.js +67 -0
  130. package/payload/mishkan/workflows/mishkan-blast-radius.js +144 -0
  131. package/payload/mishkan/workflows/mishkan-init.js +58 -0
  132. package/payload/mishkan/workflows/mishkan-knowledge-gap-discovery.js +121 -0
  133. package/payload/mishkan/workflows/mishkan-standards-rollout.js +153 -0
  134. package/payload/mishkan/workflows/mishmar-security-gate.js +83 -0
  135. package/payload/mishkan/workflows/panim-ds-rollout.js +83 -0
  136. package/payload/mishkan/workflows/sefer-release-notes.js +85 -0
  137. package/payload/mishkan/workflows/yasad-data-migration-wave.js +78 -0
  138. package/payload/mishkan/workflows/yasad-schema-evolution.js +76 -0
  139. package/payload/mishkan/templates/user-CLAUDE.md +0 -62
package/README.md CHANGED
@@ -2,54 +2,49 @@
2
2
 
3
3
  # מִשְׁכָּן · MISHKAN
4
4
 
5
- **A virtual software-engineering organisation that lives inside Claude Code.**
5
+ **A personal SWE R&D harness that lives inside Claude Code.**
6
6
 
7
- *Run a complex SDLC with AI as a disciplined, multi-agent team design, spec,
8
- architecture, security, build, review, and docs — instead of a single chat.*
7
+ 45 specialist agents · six teams · one research pipeline · one growing knowledge graph
9
8
 
10
9
  </div>
11
10
 
12
11
  ---
13
12
 
14
- MISHKAN (*"dwelling place"* — the place where the work resides) turns Claude Code
15
- into a standing engineering org: **45 specialist agents** across **six teams**, led
16
- by a PM and a CTO, sharing one research pipeline and one growing knowledge graph.
17
- Quality and security aren't *requested* of the model — they're **enforced by the
18
- environment**: path-scoped rules, pre-write security hooks, and generation kept
19
- structurally separate from review.
13
+ MISHKAN turns Claude Code into a standing engineering organisation. Quality and security aren't requested from the model they're enforced by the environment: path-scoped rules, pre-write security hooks, structural separation of generation from review. The knowledge graph (Cognee) persists what you learn so sessions pick up where the last one stopped. A code-structure graph (Graphify) answers "who calls X, who depends on Y" at 88× less token cost than loading source files.
20
14
 
21
- It's personal, opinionated infrastructure built around one engineer's standards —
22
- and shared openly for anyone who wants to try working this way. To make it yours,
23
- replace one file (your profile) and re-sync; nothing else hardcodes the author.
15
+ It's personal, opinionated infrastructure built around one engineer's standards. To make it yours, replace `docs/engineer/profile.md` and re-sync nothing else hardcodes the author.
24
16
 
25
- > **Status:** early and evolving. Used daily, not yet battle-hardened for everyone.
26
- > The agent fleet, rules, hooks, and installer are complete; the Cognee knowledge
27
- > graph is opt-in (bring up a local container) and some integration points are
28
- > marked as such below.
17
+ > **v0.2.1** agent fleet, rules, hooks, installer are stable. Cognee knowledge stack ready to bring up locally. Observability stack (watchd + TUI) available as two `uv tool`-installable packages.
29
18
 
30
19
  ---
31
20
 
32
- ## Why
21
+ ## Install
22
+
23
+ Requires Claude Code + Node ≥ 18.
24
+
25
+ ```bash
26
+ npx mishkan-harness install
27
+ mishkan status
28
+ mishkan observability # optional: daemon + TUI (needs uv)
29
+ ```
30
+
31
+ Full guide: [`docs/usage/01-installation.md`](docs/usage/01-installation.md).
33
32
 
34
- Most "AI coding" is one model in one chat doing everything at once — generating,
35
- judging its own output, skipping the spec, drifting scope. MISHKAN refuses that:
33
+ ## First session
36
34
 
37
- - **Sequence before code.** PRD → SRS → Contract → Architecture → Threat model →
38
- Modeling → implementation. Agents won't jump to code without the upstream artifacts.
39
- - **Generation evaluation.** The agent that writes is never the agent that reviews.
40
- QA and reporters are structurally separate roles.
41
- - **Deterministic guardrails.** Secrets, injection, unsafe deserialization, disabled
42
- TLS, `:latest` tags, weak hashing — blocked by a hook *before* the write lands,
43
- not flagged after.
44
- - **Security & dependencies are first-class**, not an afterthought audit.
45
- - **It learns.** Resolved research and decisions become nodes in a knowledge graph
46
- (Cognee) that grows through use.
35
+ ```bash
36
+ cd <project>
37
+ claude # starts in exploration mode Nehemiah + Bezalel
38
+ /mishkan-init # scaffold: spec chain docs/ → Cognee → Sprint S0
39
+ ```
40
+
41
+ `/sprint-close` at a milestone. `/mishkan-resume` restores state next session. Details: [`docs/usage/02-project-init.md`](docs/usage/02-project-init.md).
42
+
43
+ ---
47
44
 
48
45
  ## The teams
49
46
 
50
- Two orchestrators route everything: **Nehemiah** (PM — scope, delivery, sprint
51
- state) and **Bezalel** (CTO — architecture, standards, quality bar). Beneath them,
52
- six teams, each `Lead → Specialists → QA → Reporter`:
47
+ **Nehemiah** (PM — scope, delivery, sprint) and **Bezalel** (CTO — architecture, standards, quality bar) route everything. Six teams, each `Lead → Specialists → QA → Reporter`:
53
48
 
54
49
  | Team | Hebrew | Domain |
55
50
  |------|--------|--------|
@@ -60,146 +55,138 @@ six teams, each `Lead → Specialists → QA → Reporter`:
60
55
  | **Migdal** | *tower* | Infrastructure & ops |
61
56
  | **Sefer** | *scroll* | Documentation (pull-based) |
62
57
 
63
- A shared **research pipeline** (Jakin → Ezra → Caleb → Shaphan → Shemaiah →
64
- Baruch) is invokable by any agent that hits an unknown — clarify, formulate,
65
- research, summarise, evaluate, report — and every call is logged. Names and their
66
- biblical sources: [`docs/design/MISHKAN_agent_aliases.md`](docs/design/MISHKAN_agent_aliases.md).
58
+ A shared research pipeline (Jakin → Ezra → Caleb → Shaphan → Shemaiah → Baruch) is invokable by any agent that hits an unknown. All 45 names + biblical sources: [`docs/design/MISHKAN_agent_aliases.md`](docs/design/MISHKAN_agent_aliases.md).
67
59
 
68
- ## Install
60
+ ---
61
+
62
+ ## Knowledge stack
63
+
64
+ Wired by `/mishkan-init` into each project's `.mcp.json`:
69
65
 
70
- Requires Claude Code and Node 18. The installer has **zero npm dependencies**.
66
+ **Cognee** semantic knowledge graph. Per-project work store (`:7777`) + cross-project curated reference library (`:7730`). Docker-based, pinned, SOPS-managed secrets.
71
67
 
72
68
  ```bash
73
- npx mishkan-harness install # or: node bin/mishkan.js install (from a clone)
69
+ mishkan configure-knowledge # wizard: LLM provider + credentials + .env
70
+ cd ~/.claude/mishkan/cognee
71
+ docker compose -f docker-compose.yml -f docker-compose.hardening.yml up -d --build
72
+ ~/.claude/mishkan/scripts/seed-curated-library.sh
74
73
  ```
75
74
 
76
- Idempotent and non-destructive: it copies the harness into `~/.claude/mishkan`,
77
- symlinks agents/skills/commands for discovery, places a user-level `CLAUDE.md` and
78
- standards rule **only if absent**, and merges its hooks into `settings.json`
79
- without touching your existing hooks. Paths resolve from your home directory at
80
- install time — nothing machine-specific is baked in.
75
+ Guide: [`payload/mishkan/cognee/README.md`](payload/mishkan/cognee/README.md) · [`docs/usage/04-memory-layer.md`](docs/usage/04-memory-layer.md).
76
+
77
+ **Graphify** deterministic code-structure graph (D-008 + D-009). Indexes a project's full AST into a queryable graph. For structural questions ("who calls X", "what depends on Y") it costs ~1.8k tokens per query — 88× cheaper than loading the source tree. Runs as a PreToolUse advisory: before every structural Read or Grep, agents see a palette of four surfaces (Graphify, Cognee work, Cognee curated, literal content) with token costs and staleness signals so they pick the cheap path first. Auto-detected and wired by `/mishkan-init`.
81
78
 
82
79
  ```bash
83
- npx mishkan-harness status # what's installed
84
- npx mishkan-harness uninstall # remove harness; keep your CLAUDE.md & rules
85
- npx mishkan-harness uninstall --purge # also remove the user-level rule
80
+ mishkan code-graph scan # build/refresh for the current project
81
+ mishkan code-graph status # node/edge count, last scan time
86
82
  ```
87
83
 
88
- ## A first session
84
+ ## Observability
89
85
 
90
- 1. Run `claude` anywhere. You're talking to **Nehemiah** and **Bezalel** in
91
- *exploration mode* — free conversation, no ceremony.
92
- 2. Think out loud. When intent is clear, run **`/mishkan-init`** to scaffold the
93
- project: the spec chain, `docs/`, a seeded knowledge graph, and Sprint S0.
94
- 3. Work the sprint. Every write is security-scanned; QA evaluates; reporters collect.
95
- 4. **`/sprint-close`** at a milestone. **`/mishkan-resume`** next session restores
96
- state and open blockers.
86
+ Two Python packages (`uv tool`-installable): a daemon (`mishkan-watchd`) that tails every session's event bus and a Textual TUI (`mishkan-watch`) with 8 tabs — Live, Agents, Workflows, Knowledge, Activity, Org-Ref, Usage, Skills. Cross-session, cross-project, near-zero overhead.
97
87
 
98
- ### Commands
88
+ ```bash
89
+ mishkan observability # install both packages
90
+ mishkan-watch # opens TUI, auto-starts daemon if absent
91
+ mishkan-watchd start|stop|status # manual daemon control
92
+ ```
99
93
 
100
- | Command | Does |
101
- |---|---|
102
- | `/mishkan-init` | Scaffold a project; begin Sprint S0 |
103
- | `/mishkan-resume` | Restore sprint state + blockers |
104
- | `/sprint-close` | Reporters → aggregate → docs pull → graph promote |
105
- | `/dep-audit` | Cross-project dependency & supply-chain audit |
106
- | `/promote` | Promote knowledge by blast radius |
107
- | `/sefer-pull` | Trigger a documentation pull |
94
+ Guide + event schema: [`docs/design/MISHKAN_observability.md`](docs/design/MISHKAN_observability.md).
108
95
 
109
- ## Make it yours
96
+ ## Workflows
110
97
 
111
- The harness serves the engineer described in
112
- [`docs/engineer/profile.md`](docs/engineer/profile.md) — the single, replaceable
113
- source of truth. Swap in your own (keep the section structure), then:
98
+ Beyond the agents, MISHKAN ships dynamic JavaScript workflows that orchestrate multiple subagents in parallel — fan-out/synthesize, pipeline, judge panel, adversarial verify, loop-until-X.
114
99
 
115
- ```bash
116
- ~/.claude/mishkan/scripts/sync-profile.sh
117
- ```
100
+ **Org-level (10):** `mishkan-sprint-close`, `mishkan-deep-research`, `mishkan-codebase-audit`, `mishkan-migration-wave`, `mishkan-architecture-panel`, `mishkan-release-readiness`, `mishkan-init`, `mishkan-blast-radius`, `mishkan-knowledge-gap-discovery`, `mishkan-standards-rollout`.
118
101
 
119
- That refreshes the runtime copy and audits references. **Seraiah** (the docs
120
- org-layer agent) owns re-deriving anything drawn from it. See
121
- [`docs/engineer/README.md`](docs/engineer/README.md).
102
+ **Team-level (8):** `chosheb-feature-ship`, `panim-ds-rollout`, `yasad-data-migration-wave`, `yasad-schema-evolution`, `mishmar-security-gate`, `migdal-infra-change`, `migdal-dr-drill`, `sefer-release-notes`.
122
103
 
123
- ## Dependency & supply-chain
104
+ Governed by hard caps (10 org + 4 per team) and PM+CTO co-ownership per ADR D-010. Catalogue + cost expectations: [`payload/mishkan/workflows/README.md`](payload/mishkan/workflows/README.md).
124
105
 
125
- - **Before adopting any package** — the `dependency-vetting` skill drives the
126
- research pipeline through OSV/NVD CVEs, maintenance health, typosquatting, and
127
- provenance, then gives a go/no-go.
128
- - **Across every project you own** — `/dep-audit` inventories all repos under your
129
- workspace (discovery-based, no hardcoded paths), aggregates shared CVEs and
130
- version drift, and produces a coordinated, vetted update plan.
106
+ ---
131
107
 
132
- ## Knowledge graph (optional)
108
+ ## Slash commands (inside a Claude Code session)
133
109
 
134
- MISHKAN uses [Cognee](https://docs.cognee.ai) as the knowledge graph that grows as
135
- you work. Cognee core is a Python library; the harness consumes it through the
136
- **`cognee-mcp`** server. Optional at first run agents work without it; only
137
- persistence is deferred. Run the **cognee-quickstart** skill for guided setup, or
138
- the hardened Docker deployment under `~/.claude/mishkan/cognee/` (HTTP transport,
139
- port 7777):
110
+ | Command | Purpose |
111
+ |---|---|
112
+ | `/mishkan-init` | Scaffold a projectspec chain, docs, Cognee, Sprint S0 |
113
+ | `/mishkan-resume` | Restore sprint state + open blockers |
114
+ | `/sprint-close` | Team reporters aggregate → docs pull → graph promote |
115
+ | `/mishkan-org-reference` | Print the 45-agent org inline |
116
+ | `/code-graph status\|open\|scan` | Inspect / open / refresh Graphify graph |
117
+ | `/skills <task>` | Skill-discovery router (3-bucket result) |
118
+ | `/mishkan-skills-reindex` | Rebuild skill index from disk |
119
+ | `/mishkan-skills-misses` | Aggregate miss-log for threshold tuning |
120
+ | `/eval-baruch` | Run Baruch contract eval |
121
+ | `/dep-audit` | Cross-project dependency + supply-chain audit |
122
+ | `/promote` | Promote a learning into Cognee by blast radius |
123
+ | `/sefer-pull` | Trigger documentation pull |
124
+
125
+ ## CLI commands (from any terminal)
140
126
 
141
127
  ```bash
142
- cd ~/.claude/mishkan/cognee
143
- cp .env.example .env # set LLM_API_KEY + COGNEE_MCP_REF (pinned), SOPS-managed
144
- docker compose -f docker-compose.yml -f docker-compose.hardening.yml up -d --build
145
- nc -z localhost 7777 && echo up
146
- ~/.claude/mishkan/scripts/seed-curated-library.sh # 96 curated references
128
+ mishkan help # full reference
129
+ mishkan install # install/refresh into ~/.claude
130
+ mishkan uninstall # remove harness (keeps CLAUDE.md + rules)
131
+ mishkan uninstall --purge # also remove y4nn-standards.md
132
+ mishkan configure-knowledge # wizard: LLM provider + Cognee .env
133
+ mishkan observability # install daemon + TUI only (needs uv)
134
+ mishkan status # install state, profile, version
135
+ mishkan org [--json] # print the 45-agent org
136
+ mishkan code-graph [status|open|scan] # inspect the project's Graphify graph
137
+ mishkan-watch # open observability TUI (auto-starts daemon)
138
+ mishkan-watch --no-autostart # TUI only, no daemon fork
139
+ mishkan-watchd start|stop|status # manual daemon lifecycle
140
+ ```
141
+
142
+ ---
143
+
144
+ ## Customisation
145
+
146
+ The harness serves the engineer described in [`docs/engineer/profile.md`](docs/engineer/profile.md). Swap in your own (keep the section structure), then:
147
+
148
+ ```bash
149
+ ~/.claude/mishkan/scripts/sync-profile.sh
147
150
  ```
148
151
 
149
- Agents reach it via each project's `.mcp.json` (seeded by `/mishkan-init`): the
150
- default is HTTP transport to `http://localhost:7777/mcp`, with a zero-container
151
- stdio alternative included. The deployment follows the infra rules — built from a
152
- pinned `Dockerfile` (no `:latest`), SOPS secrets, hardening overlay on every
153
- recreate, `127.0.0.1`-bound. Pin `COGNEE_MCP_REF` to a release and confirm details
154
- against [Cognee's docs](https://docs.cognee.ai/cognee-mcp/mcp-local-setup).
155
- Full guide: [`payload/mishkan/cognee/README.md`](payload/mishkan/cognee/README.md).
156
-
157
- ## Token & context management
158
-
159
- MISHKAN doesn't replace Claude's context handling — it **shapes the inputs** so
160
- the model's native behaviour works in your favour. Five mechanisms, each riding a
161
- Claude/Claude Code primitive:
162
-
163
- - **Prompt caching** — agents are ordered *static role/standards/rules first,
164
- dynamic task last*, so the stable prefix caches and you pay full price only for
165
- what changes.
166
- - **Subagent isolation** — heavy work runs in disposable child windows; only
167
- summaries return, so the main thread stays lean (and disabling auto-compaction
168
- stays low-risk).
169
- - **Tight tool grants** & **path-scoped rules** — agents carry only the tool
170
- schemas and rules relevant to the file in hand.
171
- - **Cognee offloading** — full artifacts live in the graph; context holds
172
- summaries.
173
-
174
- Model tiering is the complementary cost axis (`config/model-routing.yaml`): Opus
175
- for orchestration/leads, Sonnet for anything that writes code, Haiku for
176
- evaluate/collect/advise.
177
-
178
- → Full operational detail, the cost model, and honest gaps:
179
- [`docs/design/MISHKAN_token_optimisation.md`](docs/design/MISHKAN_token_optimisation.md).
152
+ Refreshes the runtime copy and audits references. Nothing else hardcodes the author. See [`docs/engineer/README.md`](docs/engineer/README.md).
153
+
154
+ ---
180
155
 
181
156
  ## Repository layout
182
157
 
183
158
  ```
184
159
  bin/mishkan.js installer (dependency-free)
185
- payload/ what gets installed into ~/.claude
160
+ payload/
186
161
  mishkan/ agents, skills, rules, hooks, commands, templates, config, scripts, ontology
187
162
  user/ user-level CLAUDE.md + standards rule (placed if absent)
188
163
  install/ hook fragment merged into settings.json
189
164
  docs/
190
- engineer/ the canonical, replaceable engineer profile
191
- design/
192
- MISHKAN_harness_design.md architecture (5 layers, 6 teams, knowledge model)
193
- MISHKAN_agent_aliases.md the 45 agents and their sources
194
- MISHKAN_decisions.md locked build decisions
195
- MISHKAN_ontology.md Cognee graph schema
196
- MISHKAN_token_optimisation.md how context/token use leverages Claude primitives
165
+ engineer/ canonical engineer profile (replaceable)
166
+ design/ architecture, decisions, ontology, token model, observability
167
+ usage/ 01-install 12-skill-discovery
197
168
  ```
198
169
 
199
- ## License
170
+ ---
200
171
 
201
- MIT use it, fork it, make it serve your own engineering.
172
+ ## Key design docs
173
+
174
+ | Doc | Covers |
175
+ |---|---|
176
+ | [Architecture](docs/design/MISHKAN_harness_design.md) | 5 layers, 6 teams, knowledge model |
177
+ | [Agent aliases](docs/design/MISHKAN_agent_aliases.md) | 45 agents + biblical sources |
178
+ | [Decisions](docs/design/MISHKAN_decisions.md) | Locked build decisions |
179
+ | [Cognee ontology](docs/design/MISHKAN_ontology.md) | Knowledge graph schema |
180
+ | [Token optimisation](docs/design/MISHKAN_token_optimisation.md) | Context cost model |
181
+ | [Observability](docs/design/MISHKAN_observability.md) | Daemon + TUI event schema |
182
+ | [Workflows](payload/mishkan/workflows/README.md) | Dynamic workflow catalogue |
183
+
184
+ Usage guides: [`docs/usage/`](docs/usage/).
202
185
 
203
186
  ---
204
187
 
188
+ ## License
189
+
190
+ MIT — use it, fork it, make it serve your own engineering.
191
+
205
192
  Built by **`>_theY4NN`** · [github.com/Y4NN777](https://github.com/Y4NN777)