# MANIFEST — devops-lib wiki Auto-generated by `/m-wiki:wiki-init`. Each run rewrites this file in place. ## Run summary (2026-05-22, update mode) | Metric | Value | |---|---| | Mode | update | | base-sha | e504a2b428e4 | | Pages on disk | 36 (10 top-level + 26 concept across `concepts/`, `build/`, `policy/`, `security/`, `deploy/`, `infra/`, `adr/`) | | Pages newly synthesized this run | **0** — see Synthesis note below | | Pages touched by drift refresh | 0 (B17 precheck found 0 drifted citations) | | LINE→Symbol promotions | 0 | | Raw inputs picked up | 0 (`raw/` empty) | | External inputs picked up | 0 (`raw/external/` empty) | | Reconcile inventory consumed | 0 hints across 0 pages | | Drift-queue entries drained | 0 (empty) | | Auto-synthesize targets folded | 0 — `docs/tribal-knowledge.md` content already represented in existing pages | | Warnings | 3 (see below) | ## Synthesis note (this run) Phase 1 step 3.6 classified `docs/tribal-knowledge.md` as `auto_synthesize` (allowlist mode is `synthesize` and the file had no `sources=[...]` provenance hit in existing pages). Phase 2 §2.6 fired the decision tree against sections §1-15 and found that **every section already has equivalent coverage in pages added by commit `4a7c4001` (2026-05-12)** and the dual-bootstrap union created by the PR #861 merge: | Tribal-knowledge section | Existing coverage | |---|---| | §1 Whitelists | `pages/concepts/whitelists.md` + `pages/policy/whitelist-system.md` | | §2 ringmaster-bot constant | `pages/04-deploy-flow.md` + `pages/deploy/ringmaster-integration.md` | | §3 buildObjHelper fall-through | `pages/03-build-dispatch.md` + `pages/build/build-dispatch.md` | | §4 JVM memory formula | `pages/04-deploy-flow.md` + `pages/04-DEPLOY-ARGOCD.md` | | §5 Canary mandatory for sp0/up0 | `pages/04-deploy-flow.md` + `pages/04-DEPLOY-ARGOCD.md` | | §6 Turbo-Turtle inline JSON | `pages/04-deploy-flow.md` + `pages/deploy/ringmaster-integration.md` | | §7 `env.CHANGE_ID` | `pages/05-cross-cutting.md` + `pages/05-ENVIRONMENT-MAPPING.md` | | §8 BU-scoped node pools | `pages/05-cross-cutting.md` + `pages/infra/node-pool-selection.md` + bullet in `09-INFRA-PODS.md` | | §9 `constructTemplate._construct()` `@NonCPS` | `pages/01-overview.md` + `pages/01-ARCHITECTURE.md` | | §10 ArgoCD app-of-apps step order | `pages/04-deploy-flow.md` + `pages/04-DEPLOY-ARGOCD.md` | | §11 Node build / Dockerfile pairing | `pages/build/node-paired-files.md` | | §12 build-tools pod image versioning | bullet in `pages/09-INFRA-PODS.md` | | §13 Go sonar skip in `constructParam` | bullets in `pages/06-CONFIG-POLICY.md` + `pages/policy/cac-validation.md` | | §14 DinD sidecar `DOCKER_HOST` | bullet in `pages/09-INFRA-PODS.md` | | §15 No `scm` in library code | `pages/build/scm-variable-scope.md` | Per the atomic-concept rule, no new pages were created — they would all duplicate existing ones. The Decision tree's "doesn't fit anywhere" branch did not fire because every section had at least one existing page covering its scope. I initially wrote 5 new concept pages (`node-build-dockerfile-pairing.md`, `build-tools-image.md`, `sonar-skip-routing.md`, `dind-sidecar-endpoints.md`, `no-scm-in-library.md`) before spotting the duplicates in the older topic-based hierarchy. Those 5 pages have been removed and are not in the final commit. ## Allowlist source `docs/wiki/allowlist.yaml` (unchanged this run · 5 entries · last touched in PR #861) ## Warnings 1. **qmd registration via daemon.** The qmd HTTP MCP daemon on port 7733 serves the `devops-lib-wiki` collection (35 files indexed). `/m-wiki:wiki-search` works from a fresh Claude Code session. 2. **`.citation-index.json` `by_file` is empty by upstream design for `.groovy` files.** `m-wiki/scripts/code_truth_precheck.py:73` defines `EXT_RE` without `groovy`. ~70 `.groovy:LINE` citations in this wiki aren't indexed. B19 pre-commit drift detection is therefore inactive for `.groovy` changes. **Upstream issue.** File on `Meesho/spells` to add `groovy` to `EXT_RE`. 3. **Dual concept hierarchy.** This wiki currently has two parallel concept structures from independent bootstraps that got unioned in a merge: - `pages/concepts/` (3 pages: whitelists, secrets-and-auth, observability) — added in PR #861 from `wiki: bootstrap at base-sha=5399a5ddc36b` - `pages/{build,policy,security,deploy,infra,adr}/` (~13 pages) — added in commit `4a7c4001` from 2026-05-12 (`wiki: regenerate via /m-wiki:wiki at base-sha=28f54cf7`) Both structures cover overlapping concepts (e.g. whitelists are documented in both `concepts/whitelists.md` and `policy/whitelist-system.md`). qmd indexes both, so search results may return duplicates. A future cleanup PR should pick one hierarchy as canonical and graduate any unique content from the other. This run does NOT touch this — out of scope for "update mode picks up new tribal-knowledge content". ## Pages ``` docs/wiki/ ├── SCHEMA.md ├── index.md ├── log.md ├── MANIFEST.md ← this file ├── allowlist.yaml ├── .citation-index.json (regenerated this run; by_file empty per warning #2) ├── .drift-queue/.gitkeep └── pages/ ├── 01-overview.md ┐ ├── 01-ARCHITECTURE.md │ Dual top-level set — see warning #3 ├── 02-entry-points.md │ ├── 02-ENTRYPOINTS.md │ ├── 03-build-dispatch.md │ ├── 03-BUILD-STAGES.md │ ├── 04-deploy-flow.md │ ├── 04-DEPLOY-ARGOCD.md │ ├── 05-cross-cutting.md │ ├── 05-ENVIRONMENT-MAPPING.md┘ ├── 06-CONFIG-POLICY.md ├── 07-LANGUAGE-BUILDS.md ├── 08-DOCKERFILE-TEMPLATES.md ├── 09-INFRA-PODS.md ├── 10-NOTIFICATIONS.md ├── adr/adr-index.md ├── build/ 5 pages ├── concepts/ 3 pages (unchanged this run) ├── deploy/ 2 pages ├── infra/ 1 page ├── policy/ 3 pages └── security/ 1 page ``` ## What this run actually did Net result on disk: only `.citation-index.json` regenerated + `log.md`, `MANIFEST.md`, `index.md` refreshed with the new base-sha and the dual-hierarchy note. No content additions; no content modifications outside the four metadata files. The user invoked `/m-wiki:wiki-init` expecting the bootstrap-deferred tribal-knowledge synthesis to fire; the script's discovery did identify the target, but the decision tree found no scope-extension work to do. Surfacing this honestly is more useful than fabricating a synthesis pass.