@oomkapwn/enquire-mcp 3.7.11 → 3.7.13
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/CHANGELOG.md +105 -0
- package/README.md +5 -5
- package/dist/bases.d.ts +14 -0
- package/dist/bases.d.ts.map +1 -1
- package/dist/bases.js +34 -4
- package/dist/bases.js.map +1 -1
- package/dist/http-transport.d.ts +29 -0
- package/dist/http-transport.d.ts.map +1 -1
- package/dist/http-transport.js +68 -1
- package/dist/http-transport.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/pdf.d.ts +22 -1
- package/dist/pdf.d.ts.map +1 -1
- package/dist/pdf.js +9 -2
- package/dist/pdf.js.map +1 -1
- package/dist/tool-registry.d.ts.map +1 -1
- package/dist/tool-registry.js +26 -1
- package/dist/tool-registry.js.map +1 -1
- package/dist/tools/media.d.ts.map +1 -1
- package/dist/tools/media.js +20 -7
- package/dist/tools/media.js.map +1 -1
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +12 -1
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +46 -10
- package/dist/tools/write.js.map +1 -1
- package/dist/tools.d.ts +980 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +3132 -0
- package/dist/tools.js.map +1 -0
- package/dist/vault.d.ts.map +1 -1
- package/dist/vault.js +38 -14
- package/dist/vault.js.map +1 -1
- package/docs/COMPARISON.md +1 -1
- package/docs/QUICKSTART.md +3 -3
- package/docs/api-reference/.nojekyll +1 -0
- package/docs/api-reference/assets/hierarchy.js +1 -0
- package/docs/api-reference/assets/highlight.css +71 -0
- package/docs/api-reference/assets/icons.js +18 -0
- package/docs/api-reference/assets/icons.svg +1 -0
- package/docs/api-reference/assets/main.js +60 -0
- package/docs/api-reference/assets/navigation.js +1 -0
- package/docs/api-reference/assets/search.js +1 -0
- package/docs/api-reference/assets/style.css +1633 -0
- package/docs/api-reference/functions/index.buildEmbedText.html +15 -0
- package/docs/api-reference/functions/index.buildMcpServer.html +4 -0
- package/docs/api-reference/functions/index.formatReadyBanner.html +4 -0
- package/docs/api-reference/functions/index.main.html +1 -0
- package/docs/api-reference/functions/index.parsePositiveInt.html +1 -0
- package/docs/api-reference/functions/index.parseQuantizationMode.html +5 -0
- package/docs/api-reference/functions/index.prepareServerDeps.html +5 -0
- package/docs/api-reference/functions/index.startServer.html +1 -0
- package/docs/api-reference/functions/tools.appendToNote.html +17 -0
- package/docs/api-reference/functions/tools.archiveNote.html +15 -0
- package/docs/api-reference/functions/tools.assertHnswModelMatchesEmbedder.html +13 -0
- package/docs/api-reference/functions/tools.chatThreadAppend.html +22 -0
- package/docs/api-reference/functions/tools.chatThreadRead.html +16 -0
- package/docs/api-reference/functions/tools.contextPack.html +21 -0
- package/docs/api-reference/functions/tools.createNote.html +19 -0
- package/docs/api-reference/functions/tools.dataviewQuery.html +16 -0
- package/docs/api-reference/functions/tools.embeddingsSearch.html +40 -0
- package/docs/api-reference/functions/tools.findPath.html +23 -0
- package/docs/api-reference/functions/tools.findSimilar.html +21 -0
- package/docs/api-reference/functions/tools.frontmatterGet.html +15 -0
- package/docs/api-reference/functions/tools.frontmatterSearch.html +16 -0
- package/docs/api-reference/functions/tools.frontmatterSet.html +19 -0
- package/docs/api-reference/functions/tools.getBacklinks.html +15 -0
- package/docs/api-reference/functions/tools.getNoteNeighbors.html +16 -0
- package/docs/api-reference/functions/tools.getOpenQuestions.html +19 -0
- package/docs/api-reference/functions/tools.getOutboundLinks.html +16 -0
- package/docs/api-reference/functions/tools.getRecentEdits.html +14 -0
- package/docs/api-reference/functions/tools.getUnresolvedWikilinks.html +14 -0
- package/docs/api-reference/functions/tools.getVaultStats.html +13 -0
- package/docs/api-reference/functions/tools.lintWiki.html +20 -0
- package/docs/api-reference/functions/tools.listCanvases.html +16 -0
- package/docs/api-reference/functions/tools.listNotes.html +19 -0
- package/docs/api-reference/functions/tools.listPdfs.html +15 -0
- package/docs/api-reference/functions/tools.listTags.html +14 -0
- package/docs/api-reference/functions/tools.ocrPdf.html +18 -0
- package/docs/api-reference/functions/tools.openInUi.html +17 -0
- package/docs/api-reference/functions/tools.paperAudit.html +16 -0
- package/docs/api-reference/functions/tools.pickEmbedTextForHyde.html +8 -0
- package/docs/api-reference/functions/tools.readCanvas.html +19 -0
- package/docs/api-reference/functions/tools.readNote.html +20 -0
- package/docs/api-reference/functions/tools.readPdf.html +18 -0
- package/docs/api-reference/functions/tools.renameNote.html +24 -0
- package/docs/api-reference/functions/tools.replaceInNotes.html +20 -0
- package/docs/api-reference/functions/tools.resolveTarget.html +24 -0
- package/docs/api-reference/functions/tools.resolveWikilink.html +20 -0
- package/docs/api-reference/functions/tools.searchHybrid.html +62 -0
- package/docs/api-reference/functions/tools.searchText.html +19 -0
- package/docs/api-reference/functions/tools.semanticSearch.html +19 -0
- package/docs/api-reference/functions/tools.validateNoteProposal.html +19 -0
- package/docs/api-reference/hierarchy.html +1 -0
- package/docs/api-reference/index.html +1 -0
- package/docs/api-reference/interfaces/index.ServeOptions.html +74 -0
- package/docs/api-reference/interfaces/index.ServerDeps.html +27 -0
- package/docs/api-reference/interfaces/tool-manifest.ToolManifestEntry.html +33 -0
- package/docs/api-reference/interfaces/tools.ArchiveNoteArgs.html +12 -0
- package/docs/api-reference/interfaces/tools.BacklinkHit.html +15 -0
- package/docs/api-reference/interfaces/tools.CanvasEdge.html +19 -0
- package/docs/api-reference/interfaces/tools.CanvasSummary.html +16 -0
- package/docs/api-reference/interfaces/tools.ChatThreadAppendArgs.html +10 -0
- package/docs/api-reference/interfaces/tools.ChatThreadMessage.html +14 -0
- package/docs/api-reference/interfaces/tools.ChatThreadReadResult.html +10 -0
- package/docs/api-reference/interfaces/tools.ContextPackArgs.html +12 -0
- package/docs/api-reference/interfaces/tools.ContextPackResult.html +20 -0
- package/docs/api-reference/interfaces/tools.EmbedHit.html +21 -0
- package/docs/api-reference/interfaces/tools.EmbedSearchResponse.html +14 -0
- package/docs/api-reference/interfaces/tools.FindPathResult.html +17 -0
- package/docs/api-reference/interfaces/tools.FrontmatterSearchArgs.html +20 -0
- package/docs/api-reference/interfaces/tools.FrontmatterSetArgs.html +13 -0
- package/docs/api-reference/interfaces/tools.HnswSearchContext.html +21 -0
- package/docs/api-reference/interfaces/tools.LintWikiArgs.html +14 -0
- package/docs/api-reference/interfaces/tools.LintWikiFinding.html +14 -0
- package/docs/api-reference/interfaces/tools.LintWikiResult.html +9 -0
- package/docs/api-reference/interfaces/tools.NoteNeighbors.html +17 -0
- package/docs/api-reference/interfaces/tools.NoteReadFull.html +20 -0
- package/docs/api-reference/interfaces/tools.NoteReadMap.html +25 -0
- package/docs/api-reference/interfaces/tools.NoteSummary.html +14 -0
- package/docs/api-reference/interfaces/tools.OcrPdfArgs.html +16 -0
- package/docs/api-reference/interfaces/tools.OcrPdfPage.html +15 -0
- package/docs/api-reference/interfaces/tools.OcrPdfResult.html +18 -0
- package/docs/api-reference/interfaces/tools.OpenInUiResult.html +11 -0
- package/docs/api-reference/interfaces/tools.OpenQuestion.html +20 -0
- package/docs/api-reference/interfaces/tools.OutboundLink.html +20 -0
- package/docs/api-reference/interfaces/tools.PaperAuditFinding.html +17 -0
- package/docs/api-reference/interfaces/tools.PathStep.html +9 -0
- package/docs/api-reference/interfaces/tools.PdfSummary.html +9 -0
- package/docs/api-reference/interfaces/tools.ReadCanvasResult.html +15 -0
- package/docs/api-reference/interfaces/tools.ReadPdfArgs.html +8 -0
- package/docs/api-reference/interfaces/tools.ReadPdfPage.html +13 -0
- package/docs/api-reference/interfaces/tools.ReadPdfResult.html +18 -0
- package/docs/api-reference/interfaces/tools.RenameNoteResult.html +14 -0
- package/docs/api-reference/interfaces/tools.RenameProposal.html +13 -0
- package/docs/api-reference/interfaces/tools.ReplaceInNotesArgs.html +15 -0
- package/docs/api-reference/interfaces/tools.ReplaceInNotesFileResult.html +6 -0
- package/docs/api-reference/interfaces/tools.ReplaceInNotesResult.html +21 -0
- package/docs/api-reference/interfaces/tools.SearchHit.html +16 -0
- package/docs/api-reference/interfaces/tools.SearchHybridHit.html +30 -0
- package/docs/api-reference/interfaces/tools.SearchHybridResponse.html +23 -0
- package/docs/api-reference/interfaces/tools.SearchResponse.html +13 -0
- package/docs/api-reference/interfaces/tools.SemanticHit.html +15 -0
- package/docs/api-reference/interfaces/tools.SimilarNote.html +15 -0
- package/docs/api-reference/interfaces/tools.TagSummary.html +13 -0
- package/docs/api-reference/interfaces/tools.UnresolvedWikilink.html +22 -0
- package/docs/api-reference/interfaces/tools.ValidateProposalArgs.html +10 -0
- package/docs/api-reference/interfaces/tools.ValidateProposalResult.html +14 -0
- package/docs/api-reference/interfaces/tools.VaultStats.html +26 -0
- package/docs/api-reference/modules/index.html +1 -0
- package/docs/api-reference/modules/tool-manifest.html +1 -0
- package/docs/api-reference/modules/tools.html +1 -0
- package/docs/api-reference/types/tools.CanvasNode.html +7 -0
- package/docs/api-reference/types/tools.SearchMode.html +7 -0
- package/docs/api-reference/variables/index.VERSION.html +9 -0
- package/docs/api-reference/variables/tool-manifest.TOOL_MANIFEST.html +1 -0
- package/docs/api.md +1 -1
- package/docs/benchmarks.md +16 -9
- package/docs/http-transport.md +12 -4
- package/package.json +13 -4
- package/docs/audits/findings/L1-code-quality.md +0 -213
- package/docs/audits/findings/L2-architecture.md +0 -245
- package/docs/audits/findings/L3-tests.md +0 -339
- package/docs/audits/findings/L4-cicd.md +0 -290
- package/docs/audits/findings/L5-security.md +0 -350
- package/docs/audits/findings/L6-documentation.md +0 -347
- package/docs/audits/findings/L7-operational.md +0 -50
- package/docs/audits/findings/L8-reproducibility.md +0 -64
- package/docs/audits/findings/L9-process.md +0 -84
- package/docs/audits/findings/baseline.json +0 -19
- package/docs/audits/v3.6.0-external-anonymous-audit.md +0 -163
- package/docs/audits/v3.6.0-final-audit.md +0 -171
- package/docs/audits/v3.6.0-rc.4-rootcause.md +0 -134
- package/docs/audits/v3.6.0-system-audit-plan.md +0 -199
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
# v3.6.0 — Full-System Audit Plan
|
|
2
|
-
|
|
3
|
-
**Status**: scheduled for execution **after v3.6.0 stable is shipped** (`npm view @oomkapwn/enquire-mcp dist-tags` shows `latest = 3.6.0` and the GH release "v3.6.0" is marked Latest).
|
|
4
|
-
|
|
5
|
-
**Estimated effort**: ~12 hours of audit work, ~3 hours wall-clock with 7 parallel sub-agents.
|
|
6
|
-
|
|
7
|
-
**Trigger condition**:
|
|
8
|
-
```bash
|
|
9
|
-
[ "$(npm view @oomkapwn/enquire-mcp version)" = "3.6.0" ] && \
|
|
10
|
-
[ "$(gh release view --repo oomkapwn/enquire-mcp --json isLatest --jq '.isLatest')" = "true" ]
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
## Why this audit
|
|
14
|
-
|
|
15
|
-
By the time we ship v3.6.0 stable, the project has been through 5 external audits (Mavis ×2, MiniMax, plus 2 internal self-audits) and 15+ patch releases. Each audit has been **per-RC** — it caught drift in the surfaces it touched, but didn't sweep the whole system.
|
|
16
|
-
|
|
17
|
-
The full-system audit closes that gap: every surface, every workflow, every doc, every script verified against reality in one coordinated pass.
|
|
18
|
-
|
|
19
|
-
## Scope — 9 layers
|
|
20
|
-
|
|
21
|
-
| # | Layer | Owner | Output |
|
|
22
|
-
|---|---|---|---|
|
|
23
|
-
| L1 | Code quality | Sub-agent C1 | `docs/audits/v3.6.0-L1-code.md` |
|
|
24
|
-
| L2 | Architecture | Sub-agent C2 | `docs/audits/v3.6.0-L2-arch.md` |
|
|
25
|
-
| L3 | Tests & coverage | Sub-agent C3 | `docs/audits/v3.6.0-L3-tests.md` |
|
|
26
|
-
| L4 | CI/CD pipeline | Sub-agent C4 | `docs/audits/v3.6.0-L4-cicd.md` |
|
|
27
|
-
| L5 | Security | Sub-agent C5 | `docs/audits/v3.6.0-L5-security.md` |
|
|
28
|
-
| L6 | Documentation | Sub-agent C6 | `docs/audits/v3.6.0-L6-docs.md` |
|
|
29
|
-
| L7 | Operational | Self | `docs/audits/v3.6.0-L7-ops.md` |
|
|
30
|
-
| L8 | Reproducibility | Sub-agent C7 (clean clone) | `docs/audits/v3.6.0-L8-repro.md` |
|
|
31
|
-
| L9 | Process audit | Self | `docs/audits/v3.6.0-L9-process.md` |
|
|
32
|
-
|
|
33
|
-
### L1 — Code quality (Sub-agent C1)
|
|
34
|
-
|
|
35
|
-
For every file under `src/`:
|
|
36
|
-
- TSDoc present on every public export (44 tools + 19 prompts + ~30 types/interfaces + ~20 modules)
|
|
37
|
-
- `@param` / `@returns` / `@throws` complete
|
|
38
|
-
- Error paths handled (no silent `try { } catch {}` swallowing)
|
|
39
|
-
- No `any` types in public signatures
|
|
40
|
-
- No commented-out dead code (`// TODO` / `// FIXME` OK; commented imports/blocks BAD)
|
|
41
|
-
- Internal helpers properly marked `@internal`
|
|
42
|
-
|
|
43
|
-
For every file under `tests/`:
|
|
44
|
-
- Each test name is specific (not "test 1", "should work")
|
|
45
|
-
- Edge cases covered: empty input, malformed input, oversized input, concurrent access
|
|
46
|
-
- Error paths exercised (assert thrown error type + message)
|
|
47
|
-
- No `.skip` / `.todo` left without context comment
|
|
48
|
-
- Fixtures don't drift from production schemas
|
|
49
|
-
|
|
50
|
-
Output: severity-graded list of findings + suggested class fixes.
|
|
51
|
-
|
|
52
|
-
### L2 — Architecture (Sub-agent C2)
|
|
53
|
-
|
|
54
|
-
- **Module dependency graph**: generate via `madge --image deps.svg` or similar. Confirm no unexpected cycles.
|
|
55
|
-
- **`package.json#exports` correctness**: every listed sub-path resolves; every type points at correct `.d.ts`; no broken paths.
|
|
56
|
-
- **TOOL_MANIFEST vs reality**: 44 entries; every `name` matches a `registerTool()` call in `src/tool-registry.ts`; every `kind` matches the registration context; no orphans either direction.
|
|
57
|
-
- **PROMPT** (no manifest yet — possible v3.7 work): every `registerPrompt()` in `src/prompts.ts` is documented in README + STABILITY.
|
|
58
|
-
- **CLI flag → behavior mapping**: every `program.command(X).option(Y)` in `src/cli.ts` has a documented behavior in `docs/api.md`.
|
|
59
|
-
- **Configuration surface stability**: every option in `ServeOptions` interface (`src/server.ts`) maps to a CLI flag.
|
|
60
|
-
|
|
61
|
-
### L3 — Tests & coverage (Sub-agent C3)
|
|
62
|
-
|
|
63
|
-
- **Test count**: 713+ (whatever the actual count at v3.6.0 stable). Verify across README + package.json + SVG + CHANGELOG agreement.
|
|
64
|
-
- **Per-file coverage**: regenerate via `npm run test:coverage`. Identify files below 85% lines, 75% branches, 80% functions. Per-file list of uncovered branches with line numbers.
|
|
65
|
-
- **Flake detection**: run `npm test` 3 times in fresh processes. Any non-deterministic results = flake. Identify which tests.
|
|
66
|
-
- **Snapshot integrity**: any snapshot files in `tests/__snapshots__/` (if any) — regenerate + diff = 0.
|
|
67
|
-
- **Fixture freshness**: `tests/fixtures/*` — compare against current schema definitions (Zod schemas in src/) for any drift.
|
|
68
|
-
- **Coverage threshold safety margin**: `vitest.config.ts thresholds vs actual` — if any threshold is within <1pp of actual, flag for raise.
|
|
69
|
-
|
|
70
|
-
### L4 — CI/CD pipeline (Sub-agent C4)
|
|
71
|
-
|
|
72
|
-
- **`.github/workflows/ci.yml`**: trigger events correct, permissions minimal, action versions current (`actions/checkout@v6` etc.), Node matrix matches `engines` + reality.
|
|
73
|
-
- **`.github/workflows/release.yml`**: SHA-on-main verification still functional, REQUIRED contexts match branch protection, npm publish step uses `--provenance --access public`, dist-tag derivation regex matches every version pattern we've used.
|
|
74
|
-
- **`.github/workflows/publish-docs.yml`**: GH Pages permissions (`pages: write` + `id-token: write`), no over-broad permissions, OIDC flow correct, concurrency rules sensible.
|
|
75
|
-
- **`.github/workflows/dist-tag-cleanup.yml`** (if exists): triggers, permissions.
|
|
76
|
-
- **Branch protection vs ruleset alignment**: query both APIs, confirm same 7 required checks listed in both.
|
|
77
|
-
- **GitHub Actions runner usage**: any deprecation warnings in recent runs? (e.g. `set-output` deprecated.)
|
|
78
|
-
|
|
79
|
-
### L5 — Security (Sub-agent C5)
|
|
80
|
-
|
|
81
|
-
- **CodeQL**: `0 open` confirmed, each dismissed alert has a `dismissed_comment` that's still accurate.
|
|
82
|
-
- **Dependabot**: `0 open`. Check the upgrade policy is reasonable (not auto-merging without CI).
|
|
83
|
-
- **npm audit**: `--audit-level=moderate` for prod + `--audit-level=high` for dev. Zero findings expected.
|
|
84
|
-
- **SLSA-3 provenance**: confirm latest `npm publish` actually emitted provenance attestation. `npm view <pkg>@latest --json | jq '.dist'` should show `attestations` field.
|
|
85
|
-
- **Bearer auth**: confirm `timingSafeEqual` is used in `src/http-transport.ts`. No string `===` comparison anywhere.
|
|
86
|
-
- **Path traversal**: every `vault.readFile` / `vault.writeFile` callsite uses `resolveInside()` first. Grep for `fs.readFile` / `fs.writeFile` direct calls that bypass `Vault` class.
|
|
87
|
-
- **Privacy filters**: `--exclude-glob` + `--read-paths` applied at FTS5 indexing, at embeddings build, at every search result filter, at chunker output.
|
|
88
|
-
- **Cache permissions**: `chmod 0600` for cache files, `chmod 0700` for parent dirs — verify in `src/embed-db.ts`, `src/fts5.ts`.
|
|
89
|
-
|
|
90
|
-
### L6 — Documentation (Sub-agent C6)
|
|
91
|
-
|
|
92
|
-
For each markdown file in `docs/` + root-level `*.md`:
|
|
93
|
-
- Every link → 200 OK (no 404s on github.com / npmjs.com URLs)
|
|
94
|
-
- Every command snippet → runs without error against the actual project
|
|
95
|
-
- Every claim about "we do X" → verifiable via `grep` in src/
|
|
96
|
-
- Every claim about "we don't do Y" → no contradicting code
|
|
97
|
-
|
|
98
|
-
Specific checks:
|
|
99
|
-
- **README.md**: 44 tools count, 19 prompts count, 713 tests count, branches ≥74% claim, all alive
|
|
100
|
-
- **CHANGELOG.md**: every entry has TL;DR blockquote (per v3.5.14+ convention), every coverage stat within 0.5pp (per `check-changelog-coverage.mjs`)
|
|
101
|
-
- **STABILITY.md**: every listed export still exists in src/, every file path still correct after rc.2 split
|
|
102
|
-
- **docs/api.md**: 44/44 tool sections present, first-paragraph counts match, write-tool-count word matches
|
|
103
|
-
- **docs/COMPARISON.md**: dated 2026-05-13 — auditor verifies alternatives haven't materially changed; if cyanheads/etc. shipped new features, note them
|
|
104
|
-
- **docs/QUICKSTART.md**: `enquire-mcp serve --vault <path>` example actually works on the synthetic vault
|
|
105
|
-
- **docs/benchmarks.md**: numbers reproducible via `npm run bench:retrieval`
|
|
106
|
-
- **docs/api-reference/** (TypeDoc): every function page renders, no broken `@link` annotations
|
|
107
|
-
- **CLAUDE.md**: goal still accurate post-v3.6.0; non-goals still apply; anti-patterns still relevant
|
|
108
|
-
|
|
109
|
-
### L7 — Operational (Self)
|
|
110
|
-
|
|
111
|
-
- **Daily-check launchd**: `launchctl list | grep enquire` — loaded, no errors in stderr.log
|
|
112
|
-
- **Daily-check history**: `~/.local/share/enquire-mcp-monitor/history/*.md` — last 7 days present, all parseable, no 5xx errors
|
|
113
|
-
- **Log retention**: 30 days as designed — verify `find ... -mtime +30` cleanup actually runs
|
|
114
|
-
- **npm token rotation**: token < 60 days old, no upcoming expiry
|
|
115
|
-
- **All git tags reachable from main**: `git tag --merged main | wc -l` matches `git tag | wc -l`
|
|
116
|
-
- **npm registry hygiene**: every published version still installable
|
|
117
|
-
- **GH releases hygiene**: every tag has a corresponding GH release, every release has notes
|
|
118
|
-
|
|
119
|
-
### L8 — Reproducibility (Sub-agent C7, clean clone)
|
|
120
|
-
|
|
121
|
-
Sub-agent gets a fresh clone in an isolated worktree:
|
|
122
|
-
```bash
|
|
123
|
-
git worktree add /tmp/audit-repro main
|
|
124
|
-
cd /tmp/audit-repro
|
|
125
|
-
npm ci
|
|
126
|
-
npm test
|
|
127
|
-
npm run lint
|
|
128
|
-
npm run build
|
|
129
|
-
npm run test:coverage
|
|
130
|
-
npm run check:changelog-coverage
|
|
131
|
-
npm run docs:api
|
|
132
|
-
npm run bench:retrieval
|
|
133
|
-
# Also: smoke test with synthetic vault
|
|
134
|
-
VAULT=$(node scripts/synthetic-vault.mjs)
|
|
135
|
-
node scripts/smoke.mjs "$VAULT"
|
|
136
|
-
node scripts/smoke.mjs "$VAULT" --with-fts
|
|
137
|
-
```
|
|
138
|
-
Any step that fails on a clean clone = HIGH severity finding.
|
|
139
|
-
|
|
140
|
-
### L9 — Process audit (Self)
|
|
141
|
-
|
|
142
|
-
- **CLAUDE.md goal compliance**: re-read goal, verify every requirement met
|
|
143
|
-
- **Anti-pattern compliance**: no big-bang refactor, no copy-paste coverage stats, no hardcoded paths, no dismissed-without-reasoning auditor recs
|
|
144
|
-
- **Per-RC quality gates**: every rc (rc.1 → rc.4 → stable) had all 10 quality bar items green at merge time
|
|
145
|
-
- **Method note discipline**: every CHANGELOG entry from v3.5.9 onward has a method note section
|
|
146
|
-
- **External audit response**: every external audit finding has a documented response (fixed / rejected with reasoning / deferred with rationale)
|
|
147
|
-
|
|
148
|
-
## Severity grading
|
|
149
|
-
|
|
150
|
-
- **Critical**: blocks production use (security, data loss, broken install)
|
|
151
|
-
- **High**: ship blocker for the next release (must-fix before v3.6.1)
|
|
152
|
-
- **Medium**: fix in v3.6.2 (improves quality but not critical)
|
|
153
|
-
- **Low**: backlog or reject with reasoning
|
|
154
|
-
- **Info**: notable but not actionable
|
|
155
|
-
|
|
156
|
-
## Class identification
|
|
157
|
-
|
|
158
|
-
For each finding, identify:
|
|
159
|
-
1. **Class**: the underlying pattern (e.g., "hardcoded paths to internal files", "drift between docs and code")
|
|
160
|
-
2. **Other instances**: grep for the same class elsewhere — fix them all in one pass
|
|
161
|
-
3. **Class fix**: prevent the class going forward (invariant, gate, lint rule)
|
|
162
|
-
4. **Per-instance backfill**: fix each existing instance
|
|
163
|
-
|
|
164
|
-
## Failure handling
|
|
165
|
-
|
|
166
|
-
- **During audit**: don't stop on findings, complete the layer + report
|
|
167
|
-
- **Critical found**: pause Phase D, ship the fix as v3.6.1 emergency patch, then resume
|
|
168
|
-
- **High found**: ship as v3.6.1 normal patch, batch with other Highs
|
|
169
|
-
- **Medium found**: batch into v3.6.2
|
|
170
|
-
|
|
171
|
-
## Sign-off criteria
|
|
172
|
-
|
|
173
|
-
After Phase D fixes shipped:
|
|
174
|
-
1. Every Critical resolved
|
|
175
|
-
2. Every High resolved
|
|
176
|
-
3. Medium acknowledged + scheduled or rejected with reasoning
|
|
177
|
-
4. Daily-check shows clean state for 7 consecutive days
|
|
178
|
-
5. External re-audit (if requested) returns ≥4.8/5.0
|
|
179
|
-
|
|
180
|
-
## Outputs
|
|
181
|
-
|
|
182
|
-
- `docs/audits/v3.6.0-final-audit.md` — synthesized report, public
|
|
183
|
-
- `docs/audits/v3.6.0-L<N>-*.md` — per-layer raw findings (kept for traceability)
|
|
184
|
-
- `~/.claude/projects/.../memory/method_full_system_audit.md` — methodology note for future repeats
|
|
185
|
-
- v3.6.1+ release(s) — class fixes shipped
|
|
186
|
-
|
|
187
|
-
## Twitter announcement (if verdict ≥ 4.8/5)
|
|
188
|
-
|
|
189
|
-
```
|
|
190
|
-
v3.6.0 enquire-mcp shipped — passed a 9-layer comprehensive system audit:
|
|
191
|
-
- 44 tools fully TSDoc'd → public API reference at github.io
|
|
192
|
-
- 713 tests, branches 75%+
|
|
193
|
-
- 5 external audits passed clean
|
|
194
|
-
- public benchmarks (MRR / NDCG@10 / Recall@10) published
|
|
195
|
-
|
|
196
|
-
still the only Obsidian MCP with hybrid retrieval + BGE rerank + Bases. MIT. SLSA-3.
|
|
197
|
-
|
|
198
|
-
github.com/oomkapwn/enquire-mcp
|
|
199
|
-
```
|