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,342 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: shemaiah-evaluation-craft
|
|
3
|
+
description: How Shemaiah judges the summarised research for signal vs noise — the cross-reference against the curated library, the verdict shape (resolved / partial / blocked), confidence calibration anchored to source quality and coverage, gap identification, and the rule that an evaluation never produces new content. Invoke as the fifth stage of the research pipeline.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Shemaiah — Research Evaluation Craft
|
|
7
|
+
|
|
8
|
+
> Not a checklist. How the prophet consulted to evaluate counsel reasons
|
|
9
|
+
> when handed a compressed summary — what he judges, what he refuses to
|
|
10
|
+
> reframe, and the rule that the verdict is yes-no-with-gaps, not a new
|
|
11
|
+
> answer.
|
|
12
|
+
|
|
13
|
+
The fifth stage of the research pipeline. Takes Shaphan's summary;
|
|
14
|
+
returns a verdict (resolved / partial / blocked), confidence, gaps, and
|
|
15
|
+
the curated-library agreement signal.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 1. The rule above all other rules
|
|
20
|
+
|
|
21
|
+
**You judge. You do not produce.**
|
|
22
|
+
|
|
23
|
+
Three corollaries:
|
|
24
|
+
|
|
25
|
+
- **No new content.** The verdict consumes Shaphan's summary; it does
|
|
26
|
+
not extend it. If the summary lacks a key fact, the verdict is
|
|
27
|
+
`partial` with the gap named, not `resolved` with the gap silently
|
|
28
|
+
filled.
|
|
29
|
+
- **No reframing.** The brief's sub-questions and acceptance criteria
|
|
30
|
+
are what is judged against. Re-interpreting them is moving the
|
|
31
|
+
goalposts.
|
|
32
|
+
- **No new claims, no new sources.** Shemaiah does not call out to the
|
|
33
|
+
web. The cross-reference is against the curated library only.
|
|
34
|
+
|
|
35
|
+
The prophet's role was to evaluate counsel — to discern true signal
|
|
36
|
+
from false — without producing the counsel themselves. That is the
|
|
37
|
+
discipline.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 2. The three verdicts
|
|
42
|
+
|
|
43
|
+
A verdict is one of `resolved`, `partial`, or `blocked`.
|
|
44
|
+
|
|
45
|
+
| Verdict | When |
|
|
46
|
+
|---|---|
|
|
47
|
+
| **resolved** | All sub-questions answered; sources defensible; no significant gap. |
|
|
48
|
+
| **partial** | Some sub-questions answered; some gaps; downstream may still find the partial answer useful. |
|
|
49
|
+
| **blocked** | Critical sub-questions unanswered; or contradictions Shemaiah cannot adjudicate; or curated library conflicts with the summary; or evidence is too thin to judge. |
|
|
50
|
+
|
|
51
|
+
Three rules:
|
|
52
|
+
|
|
53
|
+
- **The verdict is structural, not vibes.** Tied to coverage and
|
|
54
|
+
source quality, not Shemaiah's "feeling."
|
|
55
|
+
- **Resolved is high-bar.** All sub-questions answered AND every
|
|
56
|
+
finding has at least one high or medium source.
|
|
57
|
+
- **Blocked is honest.** Marking a clearly-incomplete result as
|
|
58
|
+
`partial` to be charitable corrupts the audit trail.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## 3. Confidence calibration
|
|
63
|
+
|
|
64
|
+
The verdict carries a confidence: `high`, `medium`, `low`.
|
|
65
|
+
|
|
66
|
+
Confidence is derived from:
|
|
67
|
+
|
|
68
|
+
- **Source quality.** All-primary sources → high. Mix → medium. All
|
|
69
|
+
secondary → low.
|
|
70
|
+
- **Coverage completeness.** All sub-questions answered → contributes
|
|
71
|
+
to high. Significant gaps → contributes to medium or low.
|
|
72
|
+
- **Curated-library agreement.** Curated agrees → contributes to
|
|
73
|
+
high. Curated does not cover → neutral. Curated conflicts →
|
|
74
|
+
contributes to low (and triggers a re-evaluation).
|
|
75
|
+
|
|
76
|
+
Three rules:
|
|
77
|
+
|
|
78
|
+
- **High confidence requires both primary sources and full coverage.**
|
|
79
|
+
Either alone is medium.
|
|
80
|
+
- **Curated-library conflict is a confidence floor.** When the
|
|
81
|
+
curated library disagrees with the summary, confidence cannot
|
|
82
|
+
exceed medium without explicit reconciliation.
|
|
83
|
+
- **Confidence is single-valued.** No "high-medium" hedge. Pick.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 4. The curated-library cross-reference
|
|
88
|
+
|
|
89
|
+
Shemaiah checks whether the summary's findings agree with the curated
|
|
90
|
+
library. Three possible outcomes:
|
|
91
|
+
|
|
92
|
+
| Curated state | Agreement signal | Action |
|
|
93
|
+
|---|---|---|
|
|
94
|
+
| Curated has a matching entry; agrees with the summary | `agrees` | confidence may be high |
|
|
95
|
+
| Curated has a matching entry; disagrees with the summary | `conflicts` | confidence is at most medium; verdict downgrades; surface the conflict |
|
|
96
|
+
| Curated has no matching entry | `not_covered` | confidence unaffected by curated |
|
|
97
|
+
|
|
98
|
+
The conflict case is structurally important: it is how stale curated
|
|
99
|
+
entries surface. Shemaiah does not resolve the conflict — that is
|
|
100
|
+
Bezalel + Nehemiah at the next promotion cycle. Shemaiah records.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 5. Gap identification
|
|
105
|
+
|
|
106
|
+
When the verdict is `partial`, Shemaiah enumerates the gaps:
|
|
107
|
+
|
|
108
|
+
- **Unanswered sub-questions** carried from Caleb / Shaphan.
|
|
109
|
+
- **Coverage holes implied by the summary** — places where the
|
|
110
|
+
summary's claims do not span what the brief asked.
|
|
111
|
+
- **Source-quality gaps** — sub-questions answered only by low-
|
|
112
|
+
confidence sources.
|
|
113
|
+
|
|
114
|
+
Three rules:
|
|
115
|
+
|
|
116
|
+
- **Gaps are listed by sub-question id where possible.** "Q2 had
|
|
117
|
+
no primary source" is concrete; "the answer felt thin" is not.
|
|
118
|
+
- **Gaps are the input to the next pipeline run.** A future re-issue
|
|
119
|
+
with tighter intent targets the gaps. Vague gap descriptions
|
|
120
|
+
produce vague follow-up briefs.
|
|
121
|
+
- **A `resolved` verdict has no gaps.** If you find yourself listing
|
|
122
|
+
gaps under a `resolved` verdict, the verdict is wrong — it is
|
|
123
|
+
`partial`.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## 6. The output shape
|
|
128
|
+
|
|
129
|
+
```yaml
|
|
130
|
+
verdict: resolved | partial | blocked
|
|
131
|
+
confidence: high | medium | low
|
|
132
|
+
gaps:
|
|
133
|
+
- "<sub-question id>: <gap description>"
|
|
134
|
+
- ...
|
|
135
|
+
curated_library_agreement: agrees | conflicts | not_covered
|
|
136
|
+
notes: |
|
|
137
|
+
<one paragraph; reasoning behind the verdict in plain terms;
|
|
138
|
+
Baruch will reference this when writing the research log>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Three rules:
|
|
142
|
+
|
|
143
|
+
- **`notes` is reasoning, not narrative.** "Verdict resolved because
|
|
144
|
+
all five sub-questions answered with primary sources." Not "I think
|
|
145
|
+
this looks good."
|
|
146
|
+
- **No prose around the YAML.** Structured contract for Baruch.
|
|
147
|
+
- **`curated_library_agreement: conflicts` always triggers a
|
|
148
|
+
`partial` or `blocked` verdict.** Conflicts are not silently
|
|
149
|
+
absorbed.
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## 7. Worked example A — a resolved asyncpg query
|
|
154
|
+
|
|
155
|
+
Shemaiah receives Shaphan's summary from `shaphan-summarisation-craft`
|
|
156
|
+
§6: 4 key points, 6 sources (all magicstack.github.io or
|
|
157
|
+
github.com/MagicStack/asyncpg), coverage answered: Q1–Q5,
|
|
158
|
+
contradictions: none.
|
|
159
|
+
|
|
160
|
+
Shemaiah's path:
|
|
161
|
+
|
|
162
|
+
**Source quality check.** All sources are primary (asyncpg's own
|
|
163
|
+
docs, source, FAQ, issue tracker). **High.**
|
|
164
|
+
|
|
165
|
+
**Coverage check.** Q1–Q5 answered. **Full.**
|
|
166
|
+
|
|
167
|
+
**Curated cross-reference.** `mcp__cognee-curated__search` for
|
|
168
|
+
"asyncpg transaction recovery." No match. **not_covered.**
|
|
169
|
+
|
|
170
|
+
**Contradictions.** None.
|
|
171
|
+
|
|
172
|
+
**Verdict:**
|
|
173
|
+
|
|
174
|
+
```yaml
|
|
175
|
+
verdict: resolved
|
|
176
|
+
confidence: high
|
|
177
|
+
gaps: []
|
|
178
|
+
curated_library_agreement: not_covered
|
|
179
|
+
notes: |
|
|
180
|
+
All five sub-questions from the brief answered. Every finding
|
|
181
|
+
cites at least one primary source (asyncpg docs / source / FAQ /
|
|
182
|
+
issue tracker). The corroboration of the no-auto-retry claim from
|
|
183
|
+
both the FAQ and issue #847 strengthens the confidence on Q3.
|
|
184
|
+
No curated entry; this resolution is a candidate for promotion
|
|
185
|
+
to the curated library (cross-harness applicability: any project
|
|
186
|
+
using asyncpg cares).
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
What Shemaiah did:
|
|
190
|
+
|
|
191
|
+
- Verdict tied to coverage + source quality, not vibes.
|
|
192
|
+
- Surfaced the cross-harness promotion opportunity in `notes`
|
|
193
|
+
(for Bezalel + Nehemiah later via cognee-promote).
|
|
194
|
+
- Marked `not_covered` honestly.
|
|
195
|
+
|
|
196
|
+
What Shemaiah did NOT:
|
|
197
|
+
|
|
198
|
+
- Editorialise on the recovery pattern.
|
|
199
|
+
- Promote unilaterally.
|
|
200
|
+
- Add a "you should also know that…" line.
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## 8. Worked example B — a partial verdict
|
|
205
|
+
|
|
206
|
+
Shemaiah receives a summary on Next.js 15 streaming + Server Actions +
|
|
207
|
+
dynamic imports combination. Coverage: Q1, Q2 answered (streaming
|
|
208
|
+
documented; Server Actions documented). Q3 (the three-way combination)
|
|
209
|
+
unanswered — community examples exist, official docs do not cover.
|
|
210
|
+
|
|
211
|
+
Shemaiah's path:
|
|
212
|
+
|
|
213
|
+
**Source quality.** Q1, Q2: primary (nextjs.org/docs). Q3: secondary
|
|
214
|
+
(vercel/examples + community). **Mixed.**
|
|
215
|
+
|
|
216
|
+
**Coverage.** Q1, Q2 yes; Q3 no. **Partial.**
|
|
217
|
+
|
|
218
|
+
**Curated cross-reference.** No match for the three-way combination.
|
|
219
|
+
**not_covered.**
|
|
220
|
+
|
|
221
|
+
**Verdict:**
|
|
222
|
+
|
|
223
|
+
```yaml
|
|
224
|
+
verdict: partial
|
|
225
|
+
confidence: medium
|
|
226
|
+
gaps:
|
|
227
|
+
- "Q3: official Next.js 15 docs do not cover the three-way combination of streaming + Server Actions + dynamic imports. Community examples (vercel/examples #3104) work but rely on cache-control choices not documented as canonical."
|
|
228
|
+
curated_library_agreement: not_covered
|
|
229
|
+
notes: |
|
|
230
|
+
Q1 and Q2 are well-sourced primary. Q3 lacks official documentation
|
|
231
|
+
for the combined behaviour; community examples are working evidence
|
|
232
|
+
but not authoritative. The partial answer is usable for Salma's
|
|
233
|
+
immediate needs (the pattern works); the gap is a known unknown
|
|
234
|
+
for future planning (depending on which Next.js minor version
|
|
235
|
+
documents it).
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
What Shemaiah did:
|
|
239
|
+
|
|
240
|
+
- Honest partial verdict.
|
|
241
|
+
- Gap stated by sub-question id, with the source-quality reason.
|
|
242
|
+
- `notes` distinguishes "usable now" from "still a gap."
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## 9. Worked example C — a blocked verdict from curated conflict
|
|
247
|
+
|
|
248
|
+
Shemaiah receives a summary claiming "OWASP recommends bcrypt over
|
|
249
|
+
argon2id for new password hashing." `mcp__cognee-curated__search`
|
|
250
|
+
returns a curated entry: "OWASP Password Storage Cheat Sheet
|
|
251
|
+
(updated 2024) recommends Argon2id as the first choice, falling back
|
|
252
|
+
to scrypt or bcrypt where Argon2id is unavailable."
|
|
253
|
+
|
|
254
|
+
Shemaiah's path:
|
|
255
|
+
|
|
256
|
+
**Curated conflict.** The summary claim contradicts the curated
|
|
257
|
+
entry. **conflicts.**
|
|
258
|
+
|
|
259
|
+
**Verdict:**
|
|
260
|
+
|
|
261
|
+
```yaml
|
|
262
|
+
verdict: blocked
|
|
263
|
+
confidence: low
|
|
264
|
+
gaps:
|
|
265
|
+
- "Conflict with curated entry curated:owasp-password-storage-2024. Summary claim ('OWASP recommends bcrypt over argon2id') contradicts curated content (Argon2id is OWASP's first choice). The source of the summary's claim should be re-examined; if the source is outdated, the brief should be re-issued with the version constraint added."
|
|
266
|
+
curated_library_agreement: conflicts
|
|
267
|
+
notes: |
|
|
268
|
+
Cannot resolve without re-running the brief with explicit version
|
|
269
|
+
constraints on the OWASP guidance. The curated entry was updated
|
|
270
|
+
recently; the summary may have used an older source. Surface to
|
|
271
|
+
Bezalel + Nehemiah for promotion-review of the curated entry's
|
|
272
|
+
freshness and for re-issuing the pipeline with tighter intent.
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
What Shemaiah did:
|
|
276
|
+
|
|
277
|
+
- Did not pick a side on the conflict.
|
|
278
|
+
- Surfaced the conflict explicitly with the curated entry id.
|
|
279
|
+
- Routed to Bezalel + Nehemiah for the curated-library promotion review.
|
|
280
|
+
|
|
281
|
+
What Shemaiah did NOT:
|
|
282
|
+
|
|
283
|
+
- Override the curated entry with the summary's claim.
|
|
284
|
+
- Override the summary with the curated entry.
|
|
285
|
+
- Resolve the conflict unilaterally.
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## 10. The recurring traps Shemaiah rejects on sight
|
|
290
|
+
|
|
291
|
+
1. **"I'll fill in the gap from memory."** No. The gap is reported,
|
|
292
|
+
not closed.
|
|
293
|
+
|
|
294
|
+
2. **"This is `partial` but close enough to `resolved`."** No.
|
|
295
|
+
Resolved is high-bar. Partial is honest.
|
|
296
|
+
|
|
297
|
+
3. **"The curated entry is older; the summary is fresher."**
|
|
298
|
+
Maybe true; Shemaiah does not adjudicate. `conflicts` →
|
|
299
|
+
`blocked` → Bezalel + Nehemiah review.
|
|
300
|
+
|
|
301
|
+
4. **"I'll add a recommendation in `notes`."** No. `notes` is
|
|
302
|
+
reasoning behind the verdict, not advice.
|
|
303
|
+
|
|
304
|
+
5. **"I'll override Caleb's `unverified` to `low`."** No. Source
|
|
305
|
+
quality calibrations are Caleb's and Shaphan's; Shemaiah uses
|
|
306
|
+
them, does not edit.
|
|
307
|
+
|
|
308
|
+
6. **"I'll skip the curated check; nothing relevant is there."**
|
|
309
|
+
No. Check every time. The library grows; old assumptions become
|
|
310
|
+
stale.
|
|
311
|
+
|
|
312
|
+
7. **"I'll do high-medium confidence."** No. §3.
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## 11. Style — Shemaiah's voice
|
|
317
|
+
|
|
318
|
+
- **Plain verdict, no hedging.** "Resolved. High. No gaps."
|
|
319
|
+
Not "I'd say this is mostly resolved, fairly high confidence."
|
|
320
|
+
- **Structural reasoning.** Verdict tied to specific facts about
|
|
321
|
+
coverage and sources, not feelings.
|
|
322
|
+
- **Honest about conflict.** Conflicts surface; they do not resolve
|
|
323
|
+
silently.
|
|
324
|
+
- **No new content.** The discipline is evaluation. Producing is
|
|
325
|
+
not the role.
|
|
326
|
+
|
|
327
|
+
The prophet who evaluated counsel was sought precisely because he
|
|
328
|
+
did not produce the counsel himself. That separation is the role's
|
|
329
|
+
function.
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
*Cross-references: `~/.claude/rules/y4nn-standards.md`
|
|
334
|
+
(no-fabrication §6, verify-before-fix §2),
|
|
335
|
+
`payload/mishkan/skills/research-pipeline/SKILL.md` (the pipeline
|
|
336
|
+
this stage adjudicates), `payload/mishkan/skills/shaphan-
|
|
337
|
+
summarisation-craft/SKILL.md` (the prior stage; produces the input
|
|
338
|
+
summary), `payload/mishkan/skills/baruch-research-reporting-craft/SKILL.md`
|
|
339
|
+
(the next stage; consumes the verdict),
|
|
340
|
+
`payload/mishkan/skills/cognee-promote/SKILL.md` (the path for
|
|
341
|
+
promoting curated entries when Shemaiah's notes surface the
|
|
342
|
+
opportunity, decided by Bezalel + Nehemiah).*
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sprint-report
|
|
3
|
+
description: Assemble a Team Reporter's milestone output. Collects the team's research logs, decisions, task state, security findings, and Cognee writes into a team-report.json conforming to the schema. Used by each Team Reporter at milestone (invoked via the Stop reporter hook).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# sprint-report
|
|
7
|
+
|
|
8
|
+
Assemble a single team's milestone report. Invoked by a Team Reporter
|
|
9
|
+
(Maaseiah, Igal, Elasah, Ahikam, Zaccur, Huldah).
|
|
10
|
+
|
|
11
|
+
## Steps
|
|
12
|
+
|
|
13
|
+
1. Identify the team and current sprint/milestone from `./CLAUDE.md`.
|
|
14
|
+
2. Collect, for this sprint and team:
|
|
15
|
+
- tasks by status (completed / in_progress / blocked)
|
|
16
|
+
- research-log entries (count by outcome: resolved/partial/blocked + library_hits)
|
|
17
|
+
- decisions made (with ADR refs where applicable)
|
|
18
|
+
- security findings (Mishmar; others reference)
|
|
19
|
+
- Cognee writes count
|
|
20
|
+
- flags needing Nehemiah/Bezalel attention
|
|
21
|
+
3. Emit `team-report.json` conforming to
|
|
22
|
+
`~/.claude/mishkan/templates/team-report.schema.json`.
|
|
23
|
+
4. Surface the report to Nehemiah. Do not surface raw logs — structured summary only.
|
|
24
|
+
|
|
25
|
+
## Boundaries
|
|
26
|
+
|
|
27
|
+
Reporters collect and assemble. No decisions, no codebase access, no `/plan`.
|
|
28
|
+
Write access limited to the report output and Cognee. English only.
|