mishkan-harness 0.1.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/LICENSE +21 -0
- package/README.md +205 -0
- package/bin/mishkan.js +221 -0
- package/docs/design/MISHKAN_agent_aliases.md +140 -0
- package/docs/design/MISHKAN_decisions.md +172 -0
- package/docs/design/MISHKAN_harness_design.md +820 -0
- package/docs/design/MISHKAN_ontology.md +87 -0
- package/docs/design/MISHKAN_token_optimisation.md +181 -0
- package/docs/engineer/README.md +37 -0
- package/docs/engineer/profile.example.md +79 -0
- package/docs/usage/01-installation.md +178 -0
- package/docs/usage/02-project-init.md +151 -0
- package/docs/usage/03-orchestration.md +218 -0
- package/docs/usage/04-memory-layer.md +201 -0
- package/docs/usage/05-selective-ingest.md +177 -0
- package/docs/usage/06-llm-providers.md +195 -0
- package/docs/usage/07-troubleshooting.md +316 -0
- package/docs/usage/08-glossary.md +154 -0
- package/docs/usage/09-workflows.md +123 -0
- package/docs/usage/README.md +77 -0
- package/package.json +43 -0
- package/payload/install/settings.hooks.json +47 -0
- package/payload/mishkan/AGENT_SPEC.md +154 -0
- package/payload/mishkan/agents/ahikam.md +58 -0
- package/payload/mishkan/agents/aholiab.md +68 -0
- package/payload/mishkan/agents/asaph.md +73 -0
- package/payload/mishkan/agents/baruch.md +88 -0
- package/payload/mishkan/agents/benaiah.md +76 -0
- package/payload/mishkan/agents/bezalel.md +83 -0
- package/payload/mishkan/agents/caleb.md +74 -0
- package/payload/mishkan/agents/deborah.md +63 -0
- package/payload/mishkan/agents/elasah.md +58 -0
- package/payload/mishkan/agents/eliashib.md +68 -0
- package/payload/mishkan/agents/ezra.md +69 -0
- package/payload/mishkan/agents/hanun.md +64 -0
- package/payload/mishkan/agents/hiram.md +68 -0
- package/payload/mishkan/agents/hizkiah.md +76 -0
- package/payload/mishkan/agents/huldah.md +59 -0
- package/payload/mishkan/agents/huram.md +66 -0
- package/payload/mishkan/agents/hushai.md +59 -0
- package/payload/mishkan/agents/igal.md +58 -0
- package/payload/mishkan/agents/ira.md +86 -0
- package/payload/mishkan/agents/jahaziel.md +71 -0
- package/payload/mishkan/agents/jakin.md +66 -0
- package/payload/mishkan/agents/jehonathan.md +62 -0
- package/payload/mishkan/agents/jehoshaphat.md +68 -0
- package/payload/mishkan/agents/joab.md +71 -0
- package/payload/mishkan/agents/joah.md +62 -0
- package/payload/mishkan/agents/maaseiah.md +61 -0
- package/payload/mishkan/agents/meremoth.md +65 -0
- package/payload/mishkan/agents/meshullam.md +67 -0
- package/payload/mishkan/agents/nathan.md +70 -0
- package/payload/mishkan/agents/nehemiah.md +93 -0
- package/payload/mishkan/agents/obed.md +60 -0
- package/payload/mishkan/agents/oholiab.md +67 -0
- package/payload/mishkan/agents/palal.md +63 -0
- package/payload/mishkan/agents/phinehas.md +73 -0
- package/payload/mishkan/agents/rehum.md +60 -0
- package/payload/mishkan/agents/salma.md +69 -0
- package/payload/mishkan/agents/seraiah.md +73 -0
- package/payload/mishkan/agents/shallum.md +66 -0
- package/payload/mishkan/agents/shaphan.md +64 -0
- package/payload/mishkan/agents/shemaiah.md +67 -0
- package/payload/mishkan/agents/shevna.md +58 -0
- package/payload/mishkan/agents/uriah.md +70 -0
- package/payload/mishkan/agents/zaccur.md +58 -0
- package/payload/mishkan/agents/zadok.md +67 -0
- package/payload/mishkan/agents/zerubbabel.md +69 -0
- package/payload/mishkan/cognee/.env.curated.example +61 -0
- package/payload/mishkan/cognee/.env.example +165 -0
- package/payload/mishkan/cognee/Dockerfile +50 -0
- package/payload/mishkan/cognee/README.md +129 -0
- package/payload/mishkan/cognee/docker-compose.curated-ui.yml +61 -0
- package/payload/mishkan/cognee/docker-compose.curated.yml +85 -0
- package/payload/mishkan/cognee/docker-compose.hardening.yml +16 -0
- package/payload/mishkan/cognee/docker-compose.selfhosted.yml +114 -0
- package/payload/mishkan/cognee/docker-compose.ui.yml +70 -0
- package/payload/mishkan/cognee/docker-compose.yml +71 -0
- package/payload/mishkan/cognee/ingest-curated.py +92 -0
- package/payload/mishkan/commands/dep-audit.md +24 -0
- package/payload/mishkan/commands/mishkan-init.md +25 -0
- package/payload/mishkan/commands/mishkan-resume.md +21 -0
- package/payload/mishkan/commands/promote.md +19 -0
- package/payload/mishkan/commands/sefer-pull.md +19 -0
- package/payload/mishkan/commands/sprint-close.md +21 -0
- package/payload/mishkan/config/curated-library.yaml +113 -0
- package/payload/mishkan/config/improvement-queries.md +29 -0
- package/payload/mishkan/config/model-routing.yaml +87 -0
- package/payload/mishkan/config/projects.yaml +38 -0
- package/payload/mishkan/evals/baruch/README.md +93 -0
- package/payload/mishkan/evals/baruch/fixtures/invalid/bad-outcome-enum.json +15 -0
- package/payload/mishkan/evals/baruch/fixtures/invalid/bad-sprint-pattern.json +15 -0
- package/payload/mishkan/evals/baruch/fixtures/invalid/bad-trigger-enum.json +15 -0
- package/payload/mishkan/evals/baruch/fixtures/invalid/malformed-json.json +7 -0
- package/payload/mishkan/evals/baruch/fixtures/invalid/missing-required-field.json +14 -0
- package/payload/mishkan/evals/baruch/fixtures/valid/blocked-vendor.json +15 -0
- package/payload/mishkan/evals/baruch/fixtures/valid/curated-shortcircuit.json +15 -0
- package/payload/mishkan/evals/baruch/fixtures/valid/partial-no-write.json +14 -0
- package/payload/mishkan/evals/baruch/fixtures/valid/resolved-cross-harness.json +15 -0
- package/payload/mishkan/evals/baruch/golden_case/expected.yaml +35 -0
- package/payload/mishkan/evals/baruch/golden_case/input.yaml +47 -0
- package/payload/mishkan/evals/baruch/golden_case/produced.json +15 -0
- package/payload/mishkan/evals/baruch/run.sh +129 -0
- package/payload/mishkan/hooks/model-route.py +96 -0
- package/payload/mishkan/hooks/post-tool-observe.sh +45 -0
- package/payload/mishkan/hooks/pre-tool-security.sh +150 -0
- package/payload/mishkan/hooks/session-start.sh +20 -0
- package/payload/mishkan/hooks/stop-reporter.sh +29 -0
- package/payload/mishkan/ontology.md +87 -0
- package/payload/mishkan/rules/backend/yasad.md +23 -0
- package/payload/mishkan/rules/common/dependencies.md +53 -0
- package/payload/mishkan/rules/common/quality.md +16 -0
- package/payload/mishkan/rules/common/security.md +20 -0
- package/payload/mishkan/rules/documentation/sefer.md +19 -0
- package/payload/mishkan/rules/frontend/panim.md +21 -0
- package/payload/mishkan/rules/infrastructure/migdal.md +22 -0
- package/payload/mishkan/scripts/dependency-audit.sh +171 -0
- package/payload/mishkan/scripts/ensure-curated-box.sh +66 -0
- package/payload/mishkan/scripts/mishkan-ingest.sh +92 -0
- package/payload/mishkan/scripts/observability-aggregate.sh +57 -0
- package/payload/mishkan/scripts/seed-curated-library.sh +62 -0
- package/payload/mishkan/scripts/sync-profile.sh +65 -0
- package/payload/mishkan/scripts/validate-research-log.sh +108 -0
- package/payload/mishkan/skills/asaph-a11y-seo-craft/SKILL.md +289 -0
- package/payload/mishkan/skills/baruch-research-reporting-craft/SKILL.md +460 -0
- package/payload/mishkan/skills/benaiah-devsecops-craft/SKILL.md +329 -0
- package/payload/mishkan/skills/bezalel-cto-craft/SKILL.md +391 -0
- package/payload/mishkan/skills/caleb-web-research-craft/SKILL.md +306 -0
- package/payload/mishkan/skills/cognee-promote/SKILL.md +40 -0
- package/payload/mishkan/skills/cognee-quickstart/SKILL.md +66 -0
- package/payload/mishkan/skills/context-compress/SKILL.md +36 -0
- package/payload/mishkan/skills/deborah-ux-craft/SKILL.md +295 -0
- package/payload/mishkan/skills/dependency-audit/SKILL.md +59 -0
- package/payload/mishkan/skills/dependency-vetting/SKILL.md +59 -0
- package/payload/mishkan/skills/documentation-craft/SKILL.md +468 -0
- package/payload/mishkan/skills/ezra-research-formulation-craft/SKILL.md +319 -0
- package/payload/mishkan/skills/hanun-observability-craft/SKILL.md +312 -0
- package/payload/mishkan/skills/hiram-ui-craft/SKILL.md +334 -0
- package/payload/mishkan/skills/hizkiah-implementation-craft/SKILL.md +701 -0
- package/payload/mishkan/skills/hushai-security-advisor-craft/SKILL.md +282 -0
- package/payload/mishkan/skills/ira-code-security-craft/SKILL.md +553 -0
- package/payload/mishkan/skills/jakin-intent-clarification-craft/SKILL.md +299 -0
- package/payload/mishkan/skills/jehonathan-publication-craft/SKILL.md +262 -0
- package/payload/mishkan/skills/joab-app-security-craft/SKILL.md +266 -0
- package/payload/mishkan/skills/meremoth-devops-craft/SKILL.md +298 -0
- package/payload/mishkan/skills/meshullam-infra-design-craft/SKILL.md +302 -0
- package/payload/mishkan/skills/mishkan-ingest/SKILL.md +65 -0
- package/payload/mishkan/skills/mishkan-init/SKILL.md +65 -0
- package/payload/mishkan/skills/nathan-architecture-craft/SKILL.md +547 -0
- package/payload/mishkan/skills/nehemiah-pm-craft/SKILL.md +484 -0
- package/payload/mishkan/skills/obed-asset-pipeline-craft/SKILL.md +286 -0
- package/payload/mishkan/skills/oholiab-design-system-craft/SKILL.md +334 -0
- package/payload/mishkan/skills/palal-systems-craft/SKILL.md +281 -0
- package/payload/mishkan/skills/qa-evaluation-craft/SKILL.md +406 -0
- package/payload/mishkan/skills/rehum-sre-advisor-craft/SKILL.md +228 -0
- package/payload/mishkan/skills/reporter-discipline-craft/SKILL.md +351 -0
- package/payload/mishkan/skills/research-pipeline/SKILL.md +55 -0
- package/payload/mishkan/skills/salma-frontend-implementation-craft/SKILL.md +369 -0
- package/payload/mishkan/skills/sefer-pull/SKILL.md +37 -0
- package/payload/mishkan/skills/shallum-database-craft/SKILL.md +347 -0
- package/payload/mishkan/skills/shaphan-summarisation-craft/SKILL.md +271 -0
- package/payload/mishkan/skills/shemaiah-evaluation-craft/SKILL.md +342 -0
- package/payload/mishkan/skills/sprint-report/SKILL.md +28 -0
- package/payload/mishkan/skills/team-lead-craft/SKILL.md +457 -0
- package/payload/mishkan/skills/zadok-contract-craft/SKILL.md +520 -0
- package/payload/mishkan/templates/case-node.schema.json +22 -0
- package/payload/mishkan/templates/mcp.json +22 -0
- package/payload/mishkan/templates/observability-log.schema.json +24 -0
- package/payload/mishkan/templates/project-CLAUDE.md +47 -0
- package/payload/mishkan/templates/research-log.schema.json +40 -0
- package/payload/mishkan/templates/settings.json +12 -0
- package/payload/mishkan/templates/settings.local.json +6 -0
- package/payload/mishkan/templates/sprint-state.schema.json +47 -0
- package/payload/mishkan/templates/team-report.schema.json +50 -0
- package/payload/mishkan/templates/user-CLAUDE.md +62 -0
- package/payload/mishkan/workflows/README.md +88 -0
- package/payload/mishkan/workflows/mishkan-architecture-panel.js +156 -0
- package/payload/mishkan/workflows/mishkan-codebase-audit.js +188 -0
- package/payload/mishkan/workflows/mishkan-deep-research.js +251 -0
- package/payload/mishkan/workflows/mishkan-init.js +156 -0
- package/payload/mishkan/workflows/mishkan-migration-wave.js +180 -0
- package/payload/mishkan/workflows/mishkan-release-readiness.js +163 -0
- package/payload/mishkan/workflows/mishkan-sprint-close.js +112 -0
- package/payload/user/CLAUDE.md +62 -0
- package/payload/user/rules/engineer-standards.md +66 -0
- package/payload/user/rules/y4nn-standards.md +167 -0
|
@@ -0,0 +1,820 @@
|
|
|
1
|
+
# MISHKAN — Advanced SWE R&D Harness
|
|
2
|
+
## Design Document
|
|
3
|
+
|
|
4
|
+
> *"See, I have called by name Bezalel the son of Uri... I have filled him with
|
|
5
|
+
> the Spirit of God, in wisdom, in understanding, in knowledge, and in all
|
|
6
|
+
> manner of workmanship."*
|
|
7
|
+
> — Exodus 31:2-3 (KJV)
|
|
8
|
+
|
|
9
|
+
**MISHKAN** (מִשְׁכָּן) — *dwelling place, the place where presence resides.*
|
|
10
|
+
Exodus 25:9. The Tabernacle Bezalel was called to build. The persistent place
|
|
11
|
+
where engineering work lives.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
Personal engineering infrastructure for open source contribution, freelance
|
|
16
|
+
projects, side projects, and advanced research (Tsinghua — advanced computing).
|
|
17
|
+
Built on modern software engineering with security by design, performance,
|
|
18
|
+
quality, and ops as first-class concerns. Claude Code-first. Knowledge
|
|
19
|
+
graph-driven.
|
|
20
|
+
|
|
21
|
+
Agent aliases → see `MISHKAN_agent_aliases.md`
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 1. What MISHKAN Is
|
|
26
|
+
|
|
27
|
+
A persistent, always-warm agent harness that acts as a complete virtual software
|
|
28
|
+
engineering organisation working alongside one engineer (Y4NN).
|
|
29
|
+
|
|
30
|
+
Not a task-runner. Not a pipeline. A system that:
|
|
31
|
+
|
|
32
|
+
- Converses freely during exploration and ideation
|
|
33
|
+
- Shifts naturally into execution when intent is clear
|
|
34
|
+
- Enforces quality through deterministic constraints, not probabilistic prompting
|
|
35
|
+
- Learns continuously via a structured knowledge graph (Cognee)
|
|
36
|
+
- Grows more useful over time — encodes Y4NN's standards, patterns, decisions
|
|
37
|
+
- Runs natively on Claude Code
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 2. Core Principles
|
|
42
|
+
|
|
43
|
+
**Claude Code-first.**
|
|
44
|
+
Native primitives throughout: CLAUDE.md hierarchy, subagents, hooks, MCP
|
|
45
|
+
servers, slash commands, skills, rules. No abstraction layers fighting the
|
|
46
|
+
platform.
|
|
47
|
+
|
|
48
|
+
**Harness over prompting.**
|
|
49
|
+
Reliability comes from shaping the environment, not from better instructions.
|
|
50
|
+
Deterministic constraints (hooks, gates, schemas, rules) outperform
|
|
51
|
+
probabilistic ones (telling agents to follow standards).
|
|
52
|
+
|
|
53
|
+
**Full context on every agent call.**
|
|
54
|
+
No agent operates with partial context. Agents query Cognee for what they need
|
|
55
|
+
rather than loading everything into the context window. Static role definitions
|
|
56
|
+
are cached. Dynamic sprint state is lean and structured.
|
|
57
|
+
|
|
58
|
+
**Security by design, not by audit.**
|
|
59
|
+
Mishmar is a constraint shaping every team's output from the start — not a team
|
|
60
|
+
reviewing at the end. Mishmar also audits the harness itself — hooks, MCP
|
|
61
|
+
integrations, third-party skills, tool permissions.
|
|
62
|
+
|
|
63
|
+
**Generation separated from evaluation.**
|
|
64
|
+
No agent judges its own output. QA roles and Team Reporters are structurally
|
|
65
|
+
separate from the agents producing work.
|
|
66
|
+
|
|
67
|
+
**Sequential over parallel by default.**
|
|
68
|
+
Explicit parallelism only when needed and deliberately chosen.
|
|
69
|
+
|
|
70
|
+
**Lean by discipline.**
|
|
71
|
+
Tight role definitions. Compressed state artifacts. No bloated system prompts.
|
|
72
|
+
Context window is a finite resource — spent intentionally through caching,
|
|
73
|
+
JIT loading, and Cognee offloading.
|
|
74
|
+
|
|
75
|
+
**The harness learns.**
|
|
76
|
+
Research that resolves becomes knowledge. Decisions become graph nodes. Patterns
|
|
77
|
+
surface as improvements. The system gets better at working with this specific
|
|
78
|
+
engineer over time. Knowledge promotion is orchestrated — not automatic, not
|
|
79
|
+
manual — governed by blast radius.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 3. Session Modes
|
|
84
|
+
|
|
85
|
+
### 3.1 Exploration (default on session start)
|
|
86
|
+
Free prompting. Y4NN thinks out loud, explores ideas, drafts briefs informally.
|
|
87
|
+
Nehemiah (PM) and Bezalel (CTO) lead the conversation. All other agents
|
|
88
|
+
available on demand — they do not interject unless called. The research pipeline
|
|
89
|
+
is available to any agent during this mode. No formal structure imposed.
|
|
90
|
+
|
|
91
|
+
### 3.2 Execution
|
|
92
|
+
Triggered when intent is clear — either Y4NN runs `/mishkan-init` for a new
|
|
93
|
+
project or the exploration conversation converges on a clear spec. Teams
|
|
94
|
+
activate. Work flows through the sprint structure. Team Reporters gate at
|
|
95
|
+
milestones. Sefer pulls at milestones and on trigger events.
|
|
96
|
+
|
|
97
|
+
### 3.3 Agent Availability
|
|
98
|
+
- **On demand (default):** Nehemiah and Bezalel route to agents as needed.
|
|
99
|
+
Each agent call loads the full harness state on wake via CLAUDE.md hierarchy
|
|
100
|
+
+ Cognee query + cached role definition.
|
|
101
|
+
- **All-active (user-set):** All agents simultaneously present. Used for complex
|
|
102
|
+
collaborative moments — architecture decisions, design reviews, cross-team
|
|
103
|
+
problem solving. Higher cost, explicitly chosen by Y4NN.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 4. Claude Code Primitives Map
|
|
108
|
+
|
|
109
|
+
| MISHKAN Concept | Claude Code Primitive |
|
|
110
|
+
|---------------------------|----------------------------------------------------|
|
|
111
|
+
| Harness identity | `~/.claude/CLAUDE.md` — user level |
|
|
112
|
+
| Personal standards | `~/.claude/rules/` — user level rules |
|
|
113
|
+
| Project state artifact | `./CLAUDE.md` — project level |
|
|
114
|
+
| Team standards | `.claude/rules/<team>/` — path-scoped, JIT loaded |
|
|
115
|
+
| Orchestration agents | Top-level subagents (Nehemiah, Bezalel) |
|
|
116
|
+
| Team specialists | `.claude/agents/` — one `.md` per agent |
|
|
117
|
+
| Tool permissions | Agent frontmatter `tools:` field |
|
|
118
|
+
| Constraint enforcement | `.claude/rules/` — common + path-scoped |
|
|
119
|
+
| Sprint enforcement | Hooks — `PreToolUse`, `PostToolUse`, `Stop` |
|
|
120
|
+
| Session bootstrap | `SessionStart` hook *(pending validation)* |
|
|
121
|
+
| Reusable workflows | `.claude/skills/` — load on demand, not at start |
|
|
122
|
+
| Slash commands | `.claude/commands/` |
|
|
123
|
+
| Shared knowledge graph | Cognee via MCP |
|
|
124
|
+
| Agent personal learning | Subagent auto memory — `MEMORY.md` per repo |
|
|
125
|
+
| External integrations | `.mcp.json` — per project |
|
|
126
|
+
| Observability | `PostToolUse` hook — structured session logs |
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 5. Architecture
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
┌──────────────────────────────────────────────────────────────────┐
|
|
134
|
+
│ ORCHESTRATION │
|
|
135
|
+
│ │
|
|
136
|
+
│ NEHEMIAH (PM) BEZALEL (CTO) │
|
|
137
|
+
│ scope · delivery technical standards │
|
|
138
|
+
│ sprint state · user UI architecture · quality bar │
|
|
139
|
+
│ │
|
|
140
|
+
│ ← primary conversational interface in exploration mode → │
|
|
141
|
+
└───────────────────────────┬──────────────────────────────────────┘
|
|
142
|
+
│ routes · coordinates · converses
|
|
143
|
+
┌───────────────────────────▼──────────────────────────────────────┐
|
|
144
|
+
│ SHARED RESEARCH PIPELINE │
|
|
145
|
+
│ invokable by any agent, at any time │
|
|
146
|
+
│ │
|
|
147
|
+
│ Jakin → Ezra → Caleb → Shaphan → Shemaiah → Baruch │
|
|
148
|
+
│ (clarify) (formulate) (research) (summarise) (evaluate) (report)│
|
|
149
|
+
│ │
|
|
150
|
+
│ Caleb → cloud model Shaphan + Shemaiah → local models │
|
|
151
|
+
└───────────────────────────┬──────────────────────────────────────┘
|
|
152
|
+
│ available to all teams
|
|
153
|
+
┌───────────────────────────▼──────────────────────────────────────┐
|
|
154
|
+
│ SPECIALIZED TEAMS │
|
|
155
|
+
│ │
|
|
156
|
+
│ CHOSHEB PANIM YASAD MISHMAR MIGDAL SEFER │
|
|
157
|
+
│ Design Frontend Backend Security Infra Docs │
|
|
158
|
+
│ │
|
|
159
|
+
│ Each team: Lead → Specialists → QA/Advisor → Reporter │
|
|
160
|
+
│ │
|
|
161
|
+
│ Collaboration model: │
|
|
162
|
+
│ Chosheb ──→ Panim design handoff · unidirectional │
|
|
163
|
+
│ Panim ↔ Yasad API contracts · bidirectional │
|
|
164
|
+
│ Yasad ↔ Mishmar audit + remediation · bidirectional │
|
|
165
|
+
│ Mishmar → Migdal security gates infrastructure │
|
|
166
|
+
│ Mishmar + Migdal cross-cutting · review all teams │
|
|
167
|
+
│ Sefer ← all teams pulls at milestones + on trigger │
|
|
168
|
+
└───────────────────────────┬──────────────────────────────────────┘
|
|
169
|
+
│ reads · writes · promotes
|
|
170
|
+
┌───────────────────────────▼──────────────────────────────────────┐
|
|
171
|
+
│ MEMORY & KNOWLEDGE ARCHITECTURE │
|
|
172
|
+
│ │
|
|
173
|
+
│ Auto memory (per agent) subagent MEMORY.md · private │
|
|
174
|
+
│ ↓ promoted by blast radius │
|
|
175
|
+
│ Team knowledge team rules + shared topic files │
|
|
176
|
+
│ ↓ promoted at milestone │
|
|
177
|
+
│ Project graph Cognee · entities + relationships │
|
|
178
|
+
│ ↓ │
|
|
179
|
+
│ Domain ontology schema · Y4NN's personal standards │
|
|
180
|
+
│ ↓ queried by │
|
|
181
|
+
│ Improvement layer pattern detection → refinements │
|
|
182
|
+
└──────────────────────────────────────────────────────────────────┘
|
|
183
|
+
│
|
|
184
|
+
┌───────────────────────────▼──────────────────────────────────────┐
|
|
185
|
+
│ TOKEN OPTIMISATION LAYER │
|
|
186
|
+
│ │
|
|
187
|
+
│ Prompt caching static role prefix cached per agent │
|
|
188
|
+
│ JIT tool loading tools load on selection · not at start │
|
|
189
|
+
│ Cognee offloading full outputs in graph · summaries in ctx │
|
|
190
|
+
│ Auto-compaction Claude Code native · intra-session │
|
|
191
|
+
│ Rules scoping path-scoped rules · load when matched │
|
|
192
|
+
└──────────────────────────────────────────────────────────────────┘
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 6. Naming System
|
|
198
|
+
|
|
199
|
+
All names drawn from the Hebrew Bible (KJV).
|
|
200
|
+
Personal names for agents. Hebrew words for teams and the harness.
|
|
201
|
+
Full registry → `MISHKAN_agent_aliases.md`
|
|
202
|
+
|
|
203
|
+
### Harness
|
|
204
|
+
| Name | Hebrew | Strong's | Source | Meaning |
|
|
205
|
+
|------|--------|----------|--------|---------|
|
|
206
|
+
| **MISHKAN** | מִשְׁכָּן | H4908 | Exodus 25:9 | Dwelling place — the Tabernacle Bezalel built |
|
|
207
|
+
|
|
208
|
+
### Orchestration
|
|
209
|
+
| Role | Alias | Source | Meaning |
|
|
210
|
+
|------|-------|--------|---------|
|
|
211
|
+
| PM | **Nehemiah** | Book of Nehemiah | Overseer of all builders · reported to the king |
|
|
212
|
+
| CTO | **Bezalel** | Exodus 31:2 | Master craftsman · wisdom in all manner of workmanship |
|
|
213
|
+
|
|
214
|
+
### Teams
|
|
215
|
+
| Team | Name | Hebrew | Strong's | Source | Meaning |
|
|
216
|
+
|------|------|--------|----------|--------|---------|
|
|
217
|
+
| Design | **Chosheb** | חֹשֵׁב | H2803 | Exodus 31:4 | Cunning work — deviser of artistic works |
|
|
218
|
+
| Frontend | **Panim** | פָּנִים | H6440 | Exodus 33:14 | Face · presence · what is turned toward |
|
|
219
|
+
| Backend | **Yasad** | יָסַד | H3245 | Psalm 24:2 | To lay the foundation · establish solidly |
|
|
220
|
+
| Security | **Mishmar** | מִשְׁמָר | H4929 | Nehemiah 4:9 | Guard · watch · the post set day and night |
|
|
221
|
+
| Infrastructure | **Migdal** | מִגְדָּל | H4026 | Nehemiah 3:1 | Tower · load-bearing structures of the wall |
|
|
222
|
+
| Documentation | **Sefer** | סֵפֶר | H5612 | Nehemiah 8, Ezra 6 | Book · scroll · official written record |
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## 7. Agent Roster
|
|
227
|
+
|
|
228
|
+
Full aliases with sources → `MISHKAN_agent_aliases.md`
|
|
229
|
+
|
|
230
|
+
### Orchestration
|
|
231
|
+
| Alias | Functional Role |
|
|
232
|
+
|-------|----------------|
|
|
233
|
+
| Nehemiah | senior_software_project_manager |
|
|
234
|
+
| Bezalel | engineering_manager_cto |
|
|
235
|
+
|
|
236
|
+
### Research Pipeline (shared · invokable by all)
|
|
237
|
+
| Alias | Tool Role | Model |
|
|
238
|
+
|-------|-----------|-------|
|
|
239
|
+
| Jakin | intent_clarificator | Cloud |
|
|
240
|
+
| Ezra | research_details_formulator | Cloud |
|
|
241
|
+
| Caleb | contextual_web_researcher | Cloud |
|
|
242
|
+
| Shaphan | contextual_research_summarizer | Local |
|
|
243
|
+
| Shemaiah | contextual_research_results_evaluator | Local |
|
|
244
|
+
| Baruch | research_reporter | Local |
|
|
245
|
+
|
|
246
|
+
### Chosheb — Design
|
|
247
|
+
| Alias | Functional Role |
|
|
248
|
+
|-------|----------------|
|
|
249
|
+
| Aholiab | Team Lead |
|
|
250
|
+
| Hiram | senior_ui_design_and_prototype_implementation |
|
|
251
|
+
| Deborah | cognitive_and_emotional_ux_expert |
|
|
252
|
+
| Elasah | Team Reporter |
|
|
253
|
+
|
|
254
|
+
### Panim — Frontend
|
|
255
|
+
| Alias | Functional Role |
|
|
256
|
+
|-------|----------------|
|
|
257
|
+
| Huram | Team Lead |
|
|
258
|
+
| Oholiab | senior_frontend_engineer_frontend_design_system_expert |
|
|
259
|
+
| Salma | senior_frontend_developer |
|
|
260
|
+
| Obed | smart_frontend_assets_feeder |
|
|
261
|
+
| Asaph | seo_accessibility_expert |
|
|
262
|
+
| Jahaziel | frontend_qa_engineer |
|
|
263
|
+
| Ahikam | Team Reporter |
|
|
264
|
+
|
|
265
|
+
### Yasad — Backend
|
|
266
|
+
| Alias | Functional Role |
|
|
267
|
+
|-------|----------------|
|
|
268
|
+
| Zerubbabel | Team Lead |
|
|
269
|
+
| Zadok | senior_software_engineer_design_system_master |
|
|
270
|
+
| Nathan | senior_software_engineer_software_architecture_master |
|
|
271
|
+
| Hizkiah | senior_backend_engineer_pure_backend_implementation |
|
|
272
|
+
| Shallum | senior_backend_engineering_databases_expert |
|
|
273
|
+
| Uriah | backend_qa_engineer |
|
|
274
|
+
| Igal | Team Reporter |
|
|
275
|
+
|
|
276
|
+
### Mishmar — Security *(cross-cutting)*
|
|
277
|
+
| Alias | Functional Role |
|
|
278
|
+
|-------|----------------|
|
|
279
|
+
| Phinehas | Team Lead |
|
|
280
|
+
| Benaiah | software_and_infrastructure_security_expert_devsecops |
|
|
281
|
+
| Joab | web_mobile_desktop_security_expert |
|
|
282
|
+
| Ira | code_security_ops |
|
|
283
|
+
| Hushai | software_security_advisor |
|
|
284
|
+
| Maaseiah | Team Reporter |
|
|
285
|
+
|
|
286
|
+
### Migdal — Infrastructure
|
|
287
|
+
| Alias | Functional Role |
|
|
288
|
+
|-------|----------------|
|
|
289
|
+
| Eliashib | Team Lead |
|
|
290
|
+
| Palal | systems_engineer_os_virtualisation_networks |
|
|
291
|
+
| Meshullam | infrastructure_design_engineer |
|
|
292
|
+
| Hanun | devsecops_practitioner_support_ops |
|
|
293
|
+
| Meremoth | devops_engineer |
|
|
294
|
+
| Rehum | infrastructure_health_and_security_advisor |
|
|
295
|
+
| Zaccur | Team Reporter |
|
|
296
|
+
|
|
297
|
+
### Sefer — Documentation *(cross-cutting · pull-based)*
|
|
298
|
+
| Alias | Functional Role |
|
|
299
|
+
|-------|----------------|
|
|
300
|
+
| Jehoshaphat | Team Lead — documentation architecture · pulls coordination |
|
|
301
|
+
| Seraiah | organisation_layer_specialist — cross-project standards · Y4NN engineering identity |
|
|
302
|
+
| Joah | project_layer_specialist — architecture decisions · runbooks · changelogs · API docs |
|
|
303
|
+
| Shevna | team_layer_specialist — per-team docs · component libraries · security posture · infra topology |
|
|
304
|
+
| Jehonathan | knowledge_publication_specialist — queries Cognee · publishes human-readable documentation |
|
|
305
|
+
| Huldah | Team Reporter |
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## 8. Curated Resources — Team Knowledge Libraries
|
|
310
|
+
|
|
311
|
+
Each team maintains a curated knowledge library in Cognee — pre-vetted,
|
|
312
|
+
professional reference material specific to that team's domain. This is
|
|
313
|
+
distinct from the research pipeline.
|
|
314
|
+
|
|
315
|
+
**Research pipeline** → finds new things when an agent faces an unknown problem.
|
|
316
|
+
**Curated library** → holds proven things agents load without searching.
|
|
317
|
+
|
|
318
|
+
### How it works
|
|
319
|
+
|
|
320
|
+
Each team's library lives as a structured subgraph in Cognee — not flat docs.
|
|
321
|
+
Nodes represent canonical references (standards, patterns, case studies).
|
|
322
|
+
Edges represent relationships (applies-to, supersedes, validated-by).
|
|
323
|
+
|
|
324
|
+
When an agent solves a problem using a curated resource, it writes a
|
|
325
|
+
**case node** to the graph:
|
|
326
|
+
|
|
327
|
+
```json
|
|
328
|
+
{
|
|
329
|
+
"type": "case",
|
|
330
|
+
"team": "Mishmar",
|
|
331
|
+
"agent": "Ira",
|
|
332
|
+
"problem_class": "SQL injection via ORM misconfiguration",
|
|
333
|
+
"resource_applied": "OWASP-A03-2021",
|
|
334
|
+
"resolution": "parameterised queries enforced at ORM level",
|
|
335
|
+
"outcome": "resolved",
|
|
336
|
+
"sprint": "S2",
|
|
337
|
+
"task": "T-17"
|
|
338
|
+
}
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
Over time MISHKAN builds its own professional case library — specific to Y4NN's
|
|
342
|
+
work patterns, projects, and technology stack.
|
|
343
|
+
|
|
344
|
+
### Curated library scope per team
|
|
345
|
+
|
|
346
|
+
| Team | Library focus |
|
|
347
|
+
|------|--------------|
|
|
348
|
+
| Chosheb | Design systems · UX heuristics · accessibility standards · visual patterns |
|
|
349
|
+
| Panim | Component patterns · performance budgets · browser compatibility · WCAG |
|
|
350
|
+
| Yasad | Architecture patterns · API design · database patterns · clean code standards |
|
|
351
|
+
| Mishmar | OWASP · threat modelling frameworks · CVE patterns · secure coding standards |
|
|
352
|
+
| Migdal | Infrastructure patterns · IaC standards · observability · reliability engineering |
|
|
353
|
+
| Sefer | Documentation standards · ADR format · API doc standards · changelog conventions |
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## 9. Knowledge Promotion Model
|
|
358
|
+
|
|
359
|
+
When an agent learns something, the blast radius of that knowledge determines
|
|
360
|
+
where it lives.
|
|
361
|
+
|
|
362
|
+
### Three scopes
|
|
363
|
+
|
|
364
|
+
| Scope | Storage | Who decides |
|
|
365
|
+
|-------|---------|-------------|
|
|
366
|
+
| Agent-private | Subagent auto memory (`MEMORY.md`) | The agent — autonomous |
|
|
367
|
+
| Team-level | Team rules + shared topic files | Team Lead — on trigger or milestone |
|
|
368
|
+
| Cross-harness | Cognee project graph node | Nehemiah + Bezalel — at sprint close |
|
|
369
|
+
|
|
370
|
+
### Two promotion triggers
|
|
371
|
+
|
|
372
|
+
**Immediate trigger** — an agent's learning affects another agent's current
|
|
373
|
+
work. The agent flags it to its Team Lead. Team Lead decides: team-level
|
|
374
|
+
(update shared topic file) or cross-harness (write to Cognee immediately,
|
|
375
|
+
don't wait for milestone). High signal, low volume.
|
|
376
|
+
|
|
377
|
+
**Milestone trigger** — Team Reporter collects all sprint learning at milestone.
|
|
378
|
+
Surfaced to Nehemiah. Resolved research + decisions promoted to Cognee.
|
|
379
|
+
Sefer pulls the milestone output and updates documentation. Systematic,
|
|
380
|
+
predictable, every sprint.
|
|
381
|
+
|
|
382
|
+
### Promotion is orchestrated
|
|
383
|
+
|
|
384
|
+
Not automatic — noise floods the graph.
|
|
385
|
+
Not manual — signal gets lost.
|
|
386
|
+
Governed by blast radius: does this learning affect only me, my team, or
|
|
387
|
+
everyone? That question determines the promotion path.
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
## 10. Five-Layer Harness Architecture
|
|
392
|
+
|
|
393
|
+
### Layer 1 — Memory (context management)
|
|
394
|
+
|
|
395
|
+
**Static layer — cached**
|
|
396
|
+
- `~/.claude/CLAUDE.md` — Y4NN's permanent standards · travels all projects
|
|
397
|
+
- `~/.claude/rules/` — personal non-negotiables
|
|
398
|
+
- Agent role definition (frontmatter) — cached prefix per agent call
|
|
399
|
+
|
|
400
|
+
**Dynamic layer — lean**
|
|
401
|
+
- `./CLAUDE.md` — project state artifact · seeded by init · updated at milestones
|
|
402
|
+
- Subagent `MEMORY.md` — first 200 lines loaded per agent · topic files JIT
|
|
403
|
+
|
|
404
|
+
**Graph layer — queried**
|
|
405
|
+
- Cognee — agents query what they need · summaries in context · full nodes on demand
|
|
406
|
+
|
|
407
|
+
### Layer 2 — Tooling (MCP)
|
|
408
|
+
|
|
409
|
+
Dynamic loading — tools load on selection, not at session start.
|
|
410
|
+
Each agent's frontmatter declares its MCP access explicitly.
|
|
411
|
+
|
|
412
|
+
| MCP Server | Agents | Purpose |
|
|
413
|
+
|-----------|--------|---------|
|
|
414
|
+
| Cognee | All | Shared knowledge graph · read + write |
|
|
415
|
+
| Filesystem | All except Reporters | Codebase read/write |
|
|
416
|
+
| Git | Leads + Mishmar + Migdal | History · diffs · commits |
|
|
417
|
+
| Browser | Caleb (researcher) | Web research |
|
|
418
|
+
| Security scanner | Mishmar team | Static analysis · dependency scanning |
|
|
419
|
+
| Infrastructure tools | Migdal team | Deployment · ops · monitoring |
|
|
420
|
+
| Documentation tools | Sefer team | Doc generation · publishing |
|
|
421
|
+
|
|
422
|
+
### Layer 3 — Permissions & Safety
|
|
423
|
+
|
|
424
|
+
Two settings files:
|
|
425
|
+
- `.claude/settings.json` — committed · team-wide rules
|
|
426
|
+
- `.claude/settings.local.json` — gitignored · Y4NN local overrides
|
|
427
|
+
|
|
428
|
+
Permission model: **default deny · explicit allow per agent.**
|
|
429
|
+
Defined in agent frontmatter `tools:` field. Not inherited from team.
|
|
430
|
+
|
|
431
|
+
### Layer 4 — Runtime Hooks & Agents
|
|
432
|
+
|
|
433
|
+
| Hook | Trigger | Owner | Action |
|
|
434
|
+
|------|---------|-------|--------|
|
|
435
|
+
| `PreToolUse` | Before any write | Ira (Mishmar) | Security scan · validate research log contract |
|
|
436
|
+
| `PostToolUse` | After any tool | Observability | Structured log — tokens · cost · tool · agent · outcome |
|
|
437
|
+
| `Stop` | Agent stops at milestone | Team Reporter | Assemble structured milestone report |
|
|
438
|
+
| `SessionStart` | New context window | Harness | Load sprint state · query Cognee *(pending validation)* |
|
|
439
|
+
|
|
440
|
+
Multi-agent: Nehemiah and Bezalel orchestrate. Team Leads coordinate within
|
|
441
|
+
teams. No agent operates without knowing the full harness state.
|
|
442
|
+
|
|
443
|
+
### Layer 5 — Observability & Logging
|
|
444
|
+
|
|
445
|
+
Every agent call generates a structured log entry:
|
|
446
|
+
|
|
447
|
+
```json
|
|
448
|
+
{
|
|
449
|
+
"agent": "alias",
|
|
450
|
+
"team": "team_name",
|
|
451
|
+
"sprint": "S1",
|
|
452
|
+
"session": "session_id",
|
|
453
|
+
"tool_calls": ["list"],
|
|
454
|
+
"tokens_input": 0,
|
|
455
|
+
"tokens_cached": 0,
|
|
456
|
+
"tokens_output": 0,
|
|
457
|
+
"cost": 0.00,
|
|
458
|
+
"outcome": "completed | blocked | escalated",
|
|
459
|
+
"cognee_writes": 0,
|
|
460
|
+
"timestamp": "ISO8601"
|
|
461
|
+
}
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
Logs feed the improvement layer. Improvement layer queries Cognee to detect:
|
|
465
|
+
- Which agents are most expensive → prompt optimisation targets
|
|
466
|
+
- Which tools get called most per team → MCP access refinement
|
|
467
|
+
- Where blockers cluster → workflow bottleneck detection
|
|
468
|
+
- Which components accumulate findings → structural risk surfacing
|
|
469
|
+
|
|
470
|
+
---
|
|
471
|
+
|
|
472
|
+
## 11. Token Optimisation Layer
|
|
473
|
+
|
|
474
|
+
Three mechanisms, each with a distinct job. Together they keep every agent
|
|
475
|
+
call affordable without sacrificing context quality.
|
|
476
|
+
|
|
477
|
+
> **Operational detail:** how each mechanism is formulated on top of the Claude
|
|
478
|
+
> model — the cost model, the anatomy of one agent call, the native-primitive ×
|
|
479
|
+
> input-shaping mapping, the auto-compaction interaction, and honest gaps — is
|
|
480
|
+
> documented in [`MISHKAN_token_optimisation.md`](MISHKAN_token_optimisation.md).
|
|
481
|
+
|
|
482
|
+
### Prompt caching
|
|
483
|
+
Static content — agent role definition, permanent standards, team context —
|
|
484
|
+
placed first in context as a cacheable prefix. Dynamic content — sprint state,
|
|
485
|
+
current task — placed last. Cache hit rate is the metric, not raw token count.
|
|
486
|
+
Target: 50-90% cost reduction on cached tokens per agent call.
|
|
487
|
+
|
|
488
|
+
### Cognee offloading
|
|
489
|
+
Full research outputs, decision records, case nodes live in Cognee.
|
|
490
|
+
Only compressed summaries enter the context window. Agents query Cognee
|
|
491
|
+
for full detail on demand. Nothing gets dumped raw into context.
|
|
492
|
+
|
|
493
|
+
### JIT tool loading
|
|
494
|
+
MCP tool schemas load on selection, not at session start. Agents with large
|
|
495
|
+
tool surfaces (Mishmar, Migdal) don't bloat context with schemas they may
|
|
496
|
+
not use this session. Hard limit: under 10 MCPs active, under 80 tools loaded
|
|
497
|
+
at any time.
|
|
498
|
+
|
|
499
|
+
### Rules scoping
|
|
500
|
+
Path-scoped rules in `.claude/rules/<team>/` load only when Claude works
|
|
501
|
+
with matching files. Frontend rules load on `.tsx/.css`. Backend rules load
|
|
502
|
+
on `.py/.ts/api/**`. Security rules load on all files (common). No team's
|
|
503
|
+
rules bloat another team's context.
|
|
504
|
+
|
|
505
|
+
### Auto-compaction
|
|
506
|
+
Claude Code native. Handles intra-session context limits automatically.
|
|
507
|
+
CLAUDE.md survives compaction and is re-injected. Subagent MEMORY.md
|
|
508
|
+
survives via auto memory. Cognee persists independently.
|
|
509
|
+
|
|
510
|
+
---
|
|
511
|
+
|
|
512
|
+
## 12. Project Initialisation — `/mishkan-init`
|
|
513
|
+
|
|
514
|
+
Triggered manually by Y4NN once per project. Runs the SWE-BASICS-BEFORE-CODE
|
|
515
|
+
framework sequentially through the right specialist agents. Each phase feeds
|
|
516
|
+
the next.
|
|
517
|
+
|
|
518
|
+
```
|
|
519
|
+
Y4NN + Nehemiah
|
|
520
|
+
Intent conversation — free, exploratory
|
|
521
|
+
↓
|
|
522
|
+
Nehemiah
|
|
523
|
+
PRD.md
|
|
524
|
+
↓
|
|
525
|
+
Yasad: Nathan
|
|
526
|
+
SRS.md
|
|
527
|
+
↓
|
|
528
|
+
Yasad: Zadok
|
|
529
|
+
CONTRACT.md — invariants + guarantees
|
|
530
|
+
↓
|
|
531
|
+
Bezalel + Nathan
|
|
532
|
+
ARCHITECTURE.md
|
|
533
|
+
↓
|
|
534
|
+
Mishmar: Benaiah
|
|
535
|
+
THREAT_MODEL.md
|
|
536
|
+
↓
|
|
537
|
+
Migdal: Meshullam
|
|
538
|
+
C4 diagrams
|
|
539
|
+
↓
|
|
540
|
+
Sefer: Jehoshaphat
|
|
541
|
+
Initial documentation structure — README · ADRs · runbook stubs
|
|
542
|
+
↓
|
|
543
|
+
automated
|
|
544
|
+
Cognee graph seeded from all docs
|
|
545
|
+
↓
|
|
546
|
+
automated
|
|
547
|
+
CLAUDE.md written — project state artifact ready · sprint S0
|
|
548
|
+
```
|
|
549
|
+
|
|
550
|
+
### Init outputs
|
|
551
|
+
|
|
552
|
+
**Repo `docs/`**
|
|
553
|
+
```
|
|
554
|
+
docs/
|
|
555
|
+
├── PRD.md
|
|
556
|
+
├── SRS.md
|
|
557
|
+
├── CONTRACT.md
|
|
558
|
+
├── ARCHITECTURE.md
|
|
559
|
+
├── THREAT_MODEL.md
|
|
560
|
+
├── README.md
|
|
561
|
+
├── adr/ ← architecture decision records
|
|
562
|
+
├── runbooks/ ← stub runbooks per team
|
|
563
|
+
└── diagrams/C4/
|
|
564
|
+
```
|
|
565
|
+
|
|
566
|
+
**Harness state**
|
|
567
|
+
- `CLAUDE.md` seeded · sprint S0 established
|
|
568
|
+
- Cognee graph populated from all docs
|
|
569
|
+
- Sefer team documentation structure initialised
|
|
570
|
+
|
|
571
|
+
---
|
|
572
|
+
|
|
573
|
+
## 13. Sefer — Documentation Team
|
|
574
|
+
|
|
575
|
+
Cross-cutting. Pull-based. Two operating modes:
|
|
576
|
+
|
|
577
|
+
**Sequential pull** — fires at every sprint milestone after all Team Reporters
|
|
578
|
+
have surfaced. Sefer pulls from all reporters and from Cognee. Produces:
|
|
579
|
+
updated changelogs, architecture decision records, API doc updates, runbook
|
|
580
|
+
revisions, team-level documentation.
|
|
581
|
+
|
|
582
|
+
**Triggered pull** — specific events fire it without waiting for milestone.
|
|
583
|
+
Major architecture decision by Bezalel. Critical security finding closed by
|
|
584
|
+
Phinehas. Schema change by Shallum. Any high-blast-radius event triggers
|
|
585
|
+
Sefer to pull from that team and update relevant documentation immediately.
|
|
586
|
+
|
|
587
|
+
Sefer does not produce code. Does not write to the codebase. Reads from
|
|
588
|
+
Cognee and team reporters. Writes to `docs/`. Publishes human-readable
|
|
589
|
+
documentation from structured graph knowledge.
|
|
590
|
+
|
|
591
|
+
---
|
|
592
|
+
|
|
593
|
+
## 14. Research Log Contract
|
|
594
|
+
|
|
595
|
+
Every agent that invokes the research pipeline produces a structured log entry.
|
|
596
|
+
Not optional — it is the contract.
|
|
597
|
+
|
|
598
|
+
```json
|
|
599
|
+
{
|
|
600
|
+
"agent": "alias",
|
|
601
|
+
"team": "team_name",
|
|
602
|
+
"sprint": "S1",
|
|
603
|
+
"trigger": "faced_problem | requested",
|
|
604
|
+
"query_intent": "what the agent was trying to find out",
|
|
605
|
+
"tools_invoked": ["pipeline tools used"],
|
|
606
|
+
"research_output_summary": "compressed result",
|
|
607
|
+
"applied_to_task": "task_reference",
|
|
608
|
+
"outcome": "resolved | partial | blocked",
|
|
609
|
+
"knowledge_graph_write": true,
|
|
610
|
+
"curated_library_match": true
|
|
611
|
+
}
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
`curated_library_match: true` — the problem was solved using the team's
|
|
615
|
+
curated library, not the web pipeline. This distinction feeds the improvement
|
|
616
|
+
layer to detect which curated resources are actually being used.
|
|
617
|
+
|
|
618
|
+
- Private during work — stays with the calling agent
|
|
619
|
+
- Surfaces at milestone — Team Reporter collects and includes
|
|
620
|
+
- Promoted on resolve — written to Cognee project graph at sprint close
|
|
621
|
+
- Sefer pulls resolved entries at milestone to update documentation
|
|
622
|
+
|
|
623
|
+
---
|
|
624
|
+
|
|
625
|
+
## 15. Sprint Cadence & Reporting
|
|
626
|
+
|
|
627
|
+
**During sprint:** Team Reporters collect research logs and task state silently.
|
|
628
|
+
|
|
629
|
+
**At milestone:**
|
|
630
|
+
|
|
631
|
+
1. Each Team Reporter surfaces structured summary to Nehemiah
|
|
632
|
+
2. Nehemiah aggregates all six team reports (five teams + Sefer)
|
|
633
|
+
3. Bezalel reviews architectural and security flags
|
|
634
|
+
4. Sefer pulls all reporter outputs + Cognee → updates documentation
|
|
635
|
+
5. Resolved research promoted to Cognee project graph
|
|
636
|
+
6. Improvement layer queries Cognee for patterns
|
|
637
|
+
|
|
638
|
+
Team Reporter milestone output:
|
|
639
|
+
```
|
|
640
|
+
team : Yasad
|
|
641
|
+
sprint : S1
|
|
642
|
+
milestone : M2
|
|
643
|
+
tasks_completed : [list]
|
|
644
|
+
tasks_in_progress : [list]
|
|
645
|
+
tasks_blocked : [list]
|
|
646
|
+
research_calls : { resolved, partial, blocked, library_hits }
|
|
647
|
+
decisions_made : [list]
|
|
648
|
+
security_findings : [list]
|
|
649
|
+
cognee_writes : N
|
|
650
|
+
flags : [list]
|
|
651
|
+
```
|
|
652
|
+
|
|
653
|
+
---
|
|
654
|
+
|
|
655
|
+
## 16. Model Assignment Matrix
|
|
656
|
+
|
|
657
|
+
| Tier | Agents | Model |
|
|
658
|
+
|------|--------|-------|
|
|
659
|
+
| Top-tier cloud | Nehemiah · Bezalel · all Team Leads · Jehonathan | Claude Sonnet/Opus |
|
|
660
|
+
| Mid-tier cloud | Senior specialists — architecture · security · databases · Seraiah · Joah | Claude Haiku / mid-tier |
|
|
661
|
+
| Strong local | Other specialists · QA agents · Shevna | qwen2.5-coder · deepseek-coder |
|
|
662
|
+
| Fast local | All Team Reporters · Shaphan · Shemaiah · Baruch | Small local models |
|
|
663
|
+
|
|
664
|
+
Research pipeline:
|
|
665
|
+
- Caleb (web researcher) → cloud
|
|
666
|
+
- Shaphan + Shemaiah + Baruch → local
|
|
667
|
+
|
|
668
|
+
---
|
|
669
|
+
|
|
670
|
+
## 17. Tool Permission Matrix
|
|
671
|
+
|
|
672
|
+
| Tool / MCP | Orchestration | Team Leads | Specialists | QA | Reporters | Sefer |
|
|
673
|
+
|-----------|:------------:|:---------:|:-----------:|:--:|:---------:|:-----:|
|
|
674
|
+
| Research pipeline | ✓ | ✓ | ✓ | ✓ | read | ✓ |
|
|
675
|
+
| Curated library (read) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
676
|
+
| Curated library (write) | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ |
|
|
677
|
+
| Codebase (read) | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ |
|
|
678
|
+
| Codebase (write) | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ |
|
|
679
|
+
| Cognee (read) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
680
|
+
| Cognee (write) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
681
|
+
| Docs (write) | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ |
|
|
682
|
+
| Infrastructure tools | ✓ | Migdal | Migdal | ✗ | ✗ | ✗ |
|
|
683
|
+
| Security tools | ✓ | Mishmar | Mishmar | Mishmar QA | ✗ | ✗ |
|
|
684
|
+
| Documentation tools | ✓ | Sefer | Sefer | ✗ | ✗ | ✓ |
|
|
685
|
+
| External APIs | ✓ | case | case | ✗ | ✗ | ✗ |
|
|
686
|
+
|
|
687
|
+
---
|
|
688
|
+
|
|
689
|
+
## 18. ECC Integration
|
|
690
|
+
|
|
691
|
+
MISHKAN builds on ECC (affaan-m/ECC) patterns without reinventing what ECC
|
|
692
|
+
already solved well.
|
|
693
|
+
|
|
694
|
+
| ECC Pattern | How MISHKAN Uses It |
|
|
695
|
+
|-------------|-------------------|
|
|
696
|
+
| Skills as primary workflow surface | MISHKAN skills in `.claude/skills/` per workflow |
|
|
697
|
+
| Instinct-based continuous learning | Feeds MISHKAN improvement layer → Cognee |
|
|
698
|
+
| Hook runtime controls (`ECC_HOOK_PROFILE`) | Adopted directly |
|
|
699
|
+
| AgentShield security scanning | Ira (Mishmar) runs AgentShield via PreToolUse hook |
|
|
700
|
+
| Session memory hooks | Adapted for sprint-gated reporting |
|
|
701
|
+
| `CLAUDE.md` hierarchy | MISHKAN state artifact convention |
|
|
702
|
+
| Rules architecture (`common/` + language) | Adopted directly |
|
|
703
|
+
|
|
704
|
+
---
|
|
705
|
+
|
|
706
|
+
## 19. Project Filesystem Layout
|
|
707
|
+
|
|
708
|
+
```
|
|
709
|
+
~/.claude/ ← Y4NN personal · never committed
|
|
710
|
+
├── CLAUDE.md ← permanent standards · all projects
|
|
711
|
+
├── settings.json ← personal defaults
|
|
712
|
+
├── rules/
|
|
713
|
+
│ └── y4nn-standards.md ← personal non-negotiables
|
|
714
|
+
└── projects/<repo>/memory/
|
|
715
|
+
├── MEMORY.md ← cross-session index · 200 line limit
|
|
716
|
+
└── <topic>.md ← topic files · JIT loaded
|
|
717
|
+
|
|
718
|
+
<project>/
|
|
719
|
+
├── CLAUDE.md ← project state artifact · lean
|
|
720
|
+
├── CLAUDE.local.md ← gitignored · local overrides
|
|
721
|
+
├── .mcp.json ← MCP server declarations
|
|
722
|
+
├── docs/ ← init outputs · living docs
|
|
723
|
+
│ ├── PRD.md
|
|
724
|
+
│ ├── SRS.md
|
|
725
|
+
│ ├── CONTRACT.md
|
|
726
|
+
│ ├── ARCHITECTURE.md
|
|
727
|
+
│ ├── THREAT_MODEL.md
|
|
728
|
+
│ ├── README.md
|
|
729
|
+
│ ├── adr/
|
|
730
|
+
│ ├── runbooks/
|
|
731
|
+
│ └── diagrams/C4/
|
|
732
|
+
└── .claude/
|
|
733
|
+
├── settings.json ← committed · team-wide permissions
|
|
734
|
+
├── settings.local.json ← gitignored · local overrides
|
|
735
|
+
├── agents/ ← all 45 agents · one .md per agent
|
|
736
|
+
│ ├── nehemiah.md
|
|
737
|
+
│ ├── bezalel.md
|
|
738
|
+
│ └── ...
|
|
739
|
+
├── rules/ ← path-scoped · JIT loaded
|
|
740
|
+
│ ├── common/
|
|
741
|
+
│ │ └── security.md ← loads for all files
|
|
742
|
+
│ ├── frontend/
|
|
743
|
+
│ │ └── panim.md ← loads on .tsx .css .html
|
|
744
|
+
│ ├── backend/
|
|
745
|
+
│ │ └── yasad.md ← loads on .py .ts api/**
|
|
746
|
+
│ ├── infrastructure/
|
|
747
|
+
│ │ └── migdal.md ← loads on infra/** Dockerfile
|
|
748
|
+
│ └── documentation/
|
|
749
|
+
│ └── sefer.md ← loads on docs/**
|
|
750
|
+
├── skills/ ← reusable workflows · load on demand
|
|
751
|
+
│ ├── mishkan-init/
|
|
752
|
+
│ │ └── SKILL.md
|
|
753
|
+
│ ├── research-pipeline/
|
|
754
|
+
│ │ └── SKILL.md
|
|
755
|
+
│ ├── sprint-report/
|
|
756
|
+
│ │ └── SKILL.md
|
|
757
|
+
│ ├── cognee-promote/
|
|
758
|
+
│ │ └── SKILL.md
|
|
759
|
+
│ ├── context-compress/
|
|
760
|
+
│ │ └── SKILL.md
|
|
761
|
+
│ └── sefer-pull/
|
|
762
|
+
│ └── SKILL.md
|
|
763
|
+
├── hooks/
|
|
764
|
+
│ ├── pre-tool-security.sh ← Ira · Mishmar enforcement
|
|
765
|
+
│ ├── post-tool-observe.sh ← structured observability log
|
|
766
|
+
│ ├── stop-reporter.sh ← milestone trigger
|
|
767
|
+
│ └── session-start.sh ← sprint state load *(pending)*
|
|
768
|
+
├── commands/
|
|
769
|
+
│ ├── mishkan-init.md ← /mishkan-init
|
|
770
|
+
│ ├── sprint-close.md ← /sprint-close
|
|
771
|
+
│ ├── promote.md ← /promote · manual knowledge promotion
|
|
772
|
+
│ └── sefer-pull.md ← /sefer-pull · trigger doc update
|
|
773
|
+
└── templates/
|
|
774
|
+
├── research-log.json
|
|
775
|
+
├── team-report.json
|
|
776
|
+
├── sprint-state.json
|
|
777
|
+
├── case-node.json
|
|
778
|
+
└── observability-log.json
|
|
779
|
+
```
|
|
780
|
+
|
|
781
|
+
---
|
|
782
|
+
|
|
783
|
+
## 20. Open Design Questions
|
|
784
|
+
|
|
785
|
+
Not blockers — next design layer.
|
|
786
|
+
|
|
787
|
+
| Question | Status |
|
|
788
|
+
|----------|--------|
|
|
789
|
+
| SessionStart hook — what it loads · Cognee query on wake | Pending Claude Code feature validation |
|
|
790
|
+
| ACI per team — how each team interacts with its environment | Next layer |
|
|
791
|
+
| Cross-sprint knowledge compression — sprint memory → project graph | Next layer |
|
|
792
|
+
| Self-improvement loop — frequency · who acts on outputs | Next layer |
|
|
793
|
+
| Curated library bootstrap — how each team's library gets seeded | Next layer |
|
|
794
|
+
| Sefer trigger events — full list of what fires an immediate pull | Next layer |
|
|
795
|
+
|
|
796
|
+
---
|
|
797
|
+
|
|
798
|
+
## 21. What Is Not Yet Designed
|
|
799
|
+
|
|
800
|
+
Explicitly out of scope — to be designed before building:
|
|
801
|
+
|
|
802
|
+
- Agent specs (system prompts · input/output contracts · failure behavior)
|
|
803
|
+
- Prompt engineering per agent
|
|
804
|
+
- CLAUDE.md templates (user-level · project-level)
|
|
805
|
+
- Rules files content per team
|
|
806
|
+
- Hooks implementation (scripts)
|
|
807
|
+
- Skills implementation (SKILL.md content)
|
|
808
|
+
- Curated library initial content per team
|
|
809
|
+
- Cognee graph schema (entity types · relationship types · ontology)
|
|
810
|
+
- Observability pipeline (log aggregation · improvement layer queries)
|
|
811
|
+
- Model routing configuration
|
|
812
|
+
|
|
813
|
+
---
|
|
814
|
+
|
|
815
|
+
*MISHKAN Design Document — May 2026*
|
|
816
|
+
*Living document. Claude Code-first. Cognee locked. Hebrew naming locked.*
|
|
817
|
+
*Six teams including Sefer. Init flow locked. Sequential execution locked.*
|
|
818
|
+
*ECC patterns integrated. Token optimisation layer designed.*
|
|
819
|
+
*Five-layer harness architecture mapped. Knowledge promotion model defined.*
|
|
820
|
+
*Agent aliases → MISHKAN_agent_aliases.md*
|