arscontexta 0.6.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.
Files changed (418) hide show
  1. package/.claude-plugin/marketplace.json +11 -0
  2. package/.claude-plugin/plugin.json +22 -0
  3. package/README.md +683 -0
  4. package/agents/knowledge-guide.md +49 -0
  5. package/bin/cli.mjs +66 -0
  6. package/generators/agents-md.md +240 -0
  7. package/generators/claude-md.md +379 -0
  8. package/generators/features/atomic-notes.md +124 -0
  9. package/generators/features/ethical-guardrails.md +58 -0
  10. package/generators/features/graph-analysis.md +188 -0
  11. package/generators/features/helper-functions.md +92 -0
  12. package/generators/features/maintenance.md +164 -0
  13. package/generators/features/methodology-knowledge.md +70 -0
  14. package/generators/features/mocs.md +144 -0
  15. package/generators/features/multi-domain.md +61 -0
  16. package/generators/features/personality.md +71 -0
  17. package/generators/features/processing-pipeline.md +428 -0
  18. package/generators/features/schema.md +149 -0
  19. package/generators/features/self-evolution.md +229 -0
  20. package/generators/features/self-space.md +78 -0
  21. package/generators/features/semantic-search.md +99 -0
  22. package/generators/features/session-rhythm.md +85 -0
  23. package/generators/features/templates.md +85 -0
  24. package/generators/features/wiki-links.md +88 -0
  25. package/generators/soul-md.md +121 -0
  26. package/hooks/hooks.json +45 -0
  27. package/hooks/scripts/auto-commit.sh +44 -0
  28. package/hooks/scripts/session-capture.sh +35 -0
  29. package/hooks/scripts/session-orient.sh +86 -0
  30. package/hooks/scripts/write-validate.sh +42 -0
  31. package/methodology/AI shifts knowledge systems from externalizing memory to externalizing attention.md +59 -0
  32. package/methodology/BM25 retrieval fails on full-length descriptions because query term dilution reduces match scores.md +39 -0
  33. package/methodology/IBIS framework maps claim-based architecture to structured argumentation.md +58 -0
  34. package/methodology/LLM attention degrades as context fills.md +49 -0
  35. package/methodology/MOC construction forces synthesis that automated generation from metadata cannot replicate.md +49 -0
  36. package/methodology/MOC maintenance investment compounds because orientation savings multiply across every future session.md +41 -0
  37. package/methodology/MOCs are attention management devices not just organizational tools.md +51 -0
  38. package/methodology/PKM failure follows a predictable cycle.md +50 -0
  39. package/methodology/ThreadMode to DocumentMode transformation is the core value creation step.md +52 -0
  40. package/methodology/WIP limits force processing over accumulation.md +53 -0
  41. package/methodology/Zeigarnik effect validates capture-first philosophy because open loops drain attention.md +42 -0
  42. package/methodology/academic research uses structured extraction with cross-source synthesis.md +566 -0
  43. package/methodology/adapt the four-phase processing pipeline to domain-specific throughput needs.md +197 -0
  44. package/methodology/agent notes externalize navigation intuition that search cannot discover and traversal cannot reconstruct.md +48 -0
  45. package/methodology/agent self-memory should be architecturally separate from user knowledge systems.md +48 -0
  46. package/methodology/agent session boundaries create natural automation checkpoints that human-operated systems lack.md +56 -0
  47. package/methodology/agent-cognition.md +107 -0
  48. package/methodology/agents are simultaneously methodology executors and subjects creating a unique trust asymmetry.md +66 -0
  49. package/methodology/aspect-oriented programming solved the same cross-cutting concern problem that hooks solve.md +39 -0
  50. package/methodology/associative ontologies beat hierarchical taxonomies because heterarchy adapts while hierarchy brittles.md +53 -0
  51. package/methodology/attention residue may have a minimum granularity that cannot be subdivided.md +46 -0
  52. package/methodology/auto-commit hooks eliminate prospective memory failures by converting remember-to-act into guaranteed execution.md +47 -0
  53. package/methodology/automated detection is always safe because it only reads state while automated remediation risks content corruption.md +42 -0
  54. package/methodology/automation should be retired when its false positive rate exceeds its true positive rate or it catches zero issues.md +56 -0
  55. package/methodology/backlinks implicitly define notes by revealing usage context.md +35 -0
  56. package/methodology/backward maintenance asks what would be different if written today.md +62 -0
  57. package/methodology/balance onboarding enforcement and questions to prevent premature complexity.md +229 -0
  58. package/methodology/basic level categorization determines optimal MOC granularity.md +51 -0
  59. package/methodology/batching by context similarity reduces switching costs in agent processing.md +43 -0
  60. package/methodology/behavioral anti-patterns matter more than tool selection.md +42 -0
  61. package/methodology/betweenness centrality identifies bridge notes connecting disparate knowledge domains.md +57 -0
  62. package/methodology/blueprints that teach construction outperform downloads that provide pre-built code for platform-dependent modules.md +42 -0
  63. package/methodology/bootstrapping principle enables self-improving systems.md +62 -0
  64. package/methodology/build automatic memory through cognitive offloading and session handoffs.md +285 -0
  65. package/methodology/capture the reaction to content not just the content itself.md +41 -0
  66. package/methodology/claims must be specific enough to be wrong.md +36 -0
  67. package/methodology/closure rituals create clean breaks that prevent attention residue bleed.md +44 -0
  68. package/methodology/cognitive offloading is the architectural foundation for vault design.md +46 -0
  69. package/methodology/cognitive outsourcing risk in agent-operated systems.md +55 -0
  70. package/methodology/coherence maintains consistency despite inconsistent inputs.md +96 -0
  71. package/methodology/coherent architecture emerges from wiki links spreading activation and small-world topology.md +48 -0
  72. package/methodology/community detection algorithms can inform when MOCs should split or merge.md +52 -0
  73. package/methodology/complete navigation requires four complementary types that no single mechanism provides.md +43 -0
  74. package/methodology/complex systems evolve from simple working systems.md +59 -0
  75. package/methodology/composable knowledge architecture builds systems from independent toggleable modules not monolithic templates.md +61 -0
  76. package/methodology/compose multi-domain systems through separate templates and shared graph.md +372 -0
  77. package/methodology/concept-orientation beats source-orientation for cross-domain connections.md +51 -0
  78. package/methodology/confidence thresholds gate automated action between the mechanical and judgment zones.md +50 -0
  79. package/methodology/configuration dimensions interact so choices in one create pressure on others.md +58 -0
  80. package/methodology/configuration paralysis emerges when derivation surfaces too many decisions.md +44 -0
  81. package/methodology/context files function as agent operating systems through self-referential self-extension.md +46 -0
  82. package/methodology/context phrase clarity determines how deep a navigation hierarchy can scale.md +46 -0
  83. package/methodology/continuous small-batch processing eliminates review dread.md +48 -0
  84. package/methodology/controlled disorder engineers serendipity through semantic rather than topical linking.md +51 -0
  85. package/methodology/creative writing uses worldbuilding consistency with character tracking.md +672 -0
  86. package/methodology/cross-links between MOC territories indicate creative leaps and integration depth.md +43 -0
  87. package/methodology/dangling links reveal which notes want to exist.md +62 -0
  88. package/methodology/data exit velocity measures how quickly content escapes vendor lock-in.md +74 -0
  89. package/methodology/decontextualization risk means atomicity may strip meaning that cannot be recovered.md +48 -0
  90. package/methodology/dense interlinked research claims enable derivation while sparse references only enable templating.md +47 -0
  91. package/methodology/dependency resolution through topological sort makes module composition transparent and verifiable.md +56 -0
  92. package/methodology/derivation generates knowledge systems from composable research claims not template customization.md +63 -0
  93. package/methodology/derivation-engine.md +27 -0
  94. package/methodology/derived systems follow a seed-evolve-reseed lifecycle.md +56 -0
  95. package/methodology/description quality for humans diverges from description quality for keyword search.md +73 -0
  96. package/methodology/descriptions are retrieval filters not summaries.md +112 -0
  97. package/methodology/design MOCs as attention management devices with lifecycle governance.md +318 -0
  98. package/methodology/design-dimensions.md +66 -0
  99. package/methodology/digital mutability enables note evolution that physical permanence forbids.md +54 -0
  100. package/methodology/discovery-retrieval.md +48 -0
  101. package/methodology/distinctiveness scoring treats description quality as measurable.md +69 -0
  102. package/methodology/does agent processing recover what fast capture loses.md +43 -0
  103. package/methodology/domain-compositions.md +37 -0
  104. package/methodology/dual-coding with visual elements could enhance agent traversal.md +55 -0
  105. package/methodology/each module must be describable in one sentence under 200 characters or it does too many things.md +45 -0
  106. package/methodology/each new note compounds value by creating traversal paths.md +55 -0
  107. package/methodology/eight configuration dimensions parameterize the space of possible knowledge systems.md +56 -0
  108. package/methodology/elaborative encoding is the quality gate for new notes.md +55 -0
  109. package/methodology/enforce schema with graduated strictness across capture processing and query zones.md +221 -0
  110. package/methodology/enforcing atomicity can create paralysis when ideas resist decomposition.md +43 -0
  111. package/methodology/engineering uses technical decision tracking with architectural memory.md +766 -0
  112. package/methodology/every knowledge domain shares a four-phase processing skeleton that diverges only in the process step.md +53 -0
  113. package/methodology/evolution observations provide actionable signals for system adaptation.md +67 -0
  114. package/methodology/external memory shapes cognition more than base model.md +60 -0
  115. package/methodology/faceted classification treats notes as multi-dimensional objects rather than folder contents.md +65 -0
  116. package/methodology/failure-modes.md +27 -0
  117. package/methodology/false universalism applies same processing logic regardless of domain.md +49 -0
  118. package/methodology/federated wiki pattern enables multi-agent divergence as feature not bug.md +59 -0
  119. package/methodology/flat files break at retrieval scale.md +75 -0
  120. package/methodology/forced engagement produces weak connections.md +48 -0
  121. package/methodology/four abstraction layers separate platform-agnostic from platform-dependent knowledge system features.md +47 -0
  122. package/methodology/fresh context per task preserves quality better than chaining phases.md +44 -0
  123. package/methodology/friction reveals architecture.md +63 -0
  124. package/methodology/friction-driven module adoption prevents configuration debt by adding complexity only at pain points.md +48 -0
  125. package/methodology/gardening cycle implements tend prune fertilize operations.md +41 -0
  126. package/methodology/generation effect gate blocks processing without transformation.md +40 -0
  127. package/methodology/goal-driven memory orchestration enables autonomous domain learning through directed compute allocation.md +41 -0
  128. package/methodology/good descriptions layer heuristic then mechanism then implication.md +57 -0
  129. package/methodology/graph-structure.md +65 -0
  130. package/methodology/guided notes might outperform post-hoc structuring for high-volume capture.md +37 -0
  131. package/methodology/health wellness uses symptom-trigger correlation with multi-dimensional tracking.md +819 -0
  132. package/methodology/hook composition creates emergent methodology from independent single-concern components.md +47 -0
  133. package/methodology/hook enforcement guarantees quality while instruction enforcement merely suggests it.md +51 -0
  134. package/methodology/hook-driven learning loops create self-improving methodology through observation accumulation.md +62 -0
  135. package/methodology/hooks are the agent habit system that replaces the missing basal ganglia.md +40 -0
  136. package/methodology/hooks cannot replace genuine cognitive engagement yet more automation is always tempting.md +87 -0
  137. package/methodology/hooks enable context window efficiency by delegating deterministic checks to external processes.md +47 -0
  138. package/methodology/idempotent maintenance operations are safe to automate because running them twice produces the same result as running them once.md +44 -0
  139. package/methodology/implement condition-based maintenance triggers for derived systems.md +255 -0
  140. package/methodology/implicit dependencies create distributed monoliths that fail silently across configurations.md +58 -0
  141. package/methodology/implicit knowledge emerges from traversal.md +55 -0
  142. package/methodology/incremental formalization happens through repeated touching of old notes.md +60 -0
  143. package/methodology/incremental reading enables cross-source connection finding.md +39 -0
  144. package/methodology/index.md +32 -0
  145. package/methodology/inline links carry richer relationship data than metadata fields.md +91 -0
  146. package/methodology/insight accretion differs from productivity in knowledge systems.md +41 -0
  147. package/methodology/intermediate packets enable assembly over creation.md +52 -0
  148. package/methodology/intermediate representation pattern enables reliable vault operations beyond regex.md +62 -0
  149. package/methodology/justification chains enable forward backward and evolution reasoning about configuration decisions.md +46 -0
  150. package/methodology/knowledge system architecture is parameterized by platform capabilities not fixed by methodology.md +51 -0
  151. package/methodology/knowledge systems become communication partners through complexity and memory humans cannot sustain.md +47 -0
  152. package/methodology/knowledge systems share universal operations and structural components across all methodology traditions.md +46 -0
  153. package/methodology/legal case management uses precedent chains with regulatory change propagation.md +892 -0
  154. package/methodology/live index via periodic regeneration keeps discovery current.md +58 -0
  155. package/methodology/local-first file formats are inherently agent-native.md +69 -0
  156. package/methodology/logic column pattern separates reasoning from procedure.md +35 -0
  157. package/methodology/maintenance operations are more universal than creative pipelines because structural health is domain-invariant.md +47 -0
  158. package/methodology/maintenance scheduling frequency should match consequence speed not detection capability.md +50 -0
  159. package/methodology/maintenance targeting should prioritize mechanism and theory notes.md +26 -0
  160. package/methodology/maintenance-patterns.md +72 -0
  161. package/methodology/markdown plus YAML plus ripgrep implements a queryable graph database without infrastructure.md +55 -0
  162. package/methodology/maturity field enables agent context prioritization.md +33 -0
  163. package/methodology/memory-architecture.md +27 -0
  164. package/methodology/metacognitive confidence can diverge from retrieval capability.md +42 -0
  165. package/methodology/metadata reduces entropy enabling precision over recall.md +91 -0
  166. package/methodology/methodology development should follow the trajectory from documentation to skill to hook as understanding hardens.md +80 -0
  167. package/methodology/methodology traditions are named points in a shared configuration space not competing paradigms.md +64 -0
  168. package/methodology/mnemonic medium embeds verification into navigation.md +46 -0
  169. package/methodology/module communication through shared YAML fields creates loose coupling without direct dependencies.md +44 -0
  170. package/methodology/module deactivation must account for structural artifacts that survive the toggle.md +49 -0
  171. package/methodology/multi-domain systems compose through separate templates and shared graph.md +61 -0
  172. package/methodology/multi-domain-composition.md +27 -0
  173. package/methodology/narrow folksonomy optimizes for single-operator retrieval unlike broad consensus tagging.md +53 -0
  174. package/methodology/navigation infrastructure passes through distinct scaling regimes that require qualitative strategy shifts.md +48 -0
  175. package/methodology/navigational vertigo emerges in pure association systems without local hierarchy.md +54 -0
  176. package/methodology/note titles should function as APIs enabling sentence transclusion.md +51 -0
  177. package/methodology/note-design.md +57 -0
  178. package/methodology/notes are skills /342/200/224 curated knowledge injected when relevant.md" +62 -0
  179. package/methodology/notes function as cognitive anchors that stabilize attention during complex tasks.md +41 -0
  180. package/methodology/novel domains derive by mapping knowledge type to closest reference domain then adapting.md +50 -0
  181. package/methodology/nudge theory explains graduated hook enforcement as choice architecture for agents.md +59 -0
  182. package/methodology/observation and tension logs function as dead-letter queues for failed automation.md +51 -0
  183. package/methodology/operational memory and knowledge memory serve different functions in agent architecture.md +48 -0
  184. package/methodology/operational wisdom requires contextual observation.md +52 -0
  185. package/methodology/orchestrated vault creation transforms arscontexta from tool to autonomous knowledge factory.md +40 -0
  186. package/methodology/organic emergence versus active curation creates a fundamental vault governance tension.md +68 -0
  187. package/methodology/orphan notes are seeds not failures.md +38 -0
  188. package/methodology/over-automation corrupts quality when hooks encode judgment rather than verification.md +62 -0
  189. package/methodology/people relationships uses Dunbar-layered graphs with interaction tracking.md +659 -0
  190. package/methodology/personal assistant uses life area management with review automation.md +610 -0
  191. package/methodology/platform adapter translation is semantic not mechanical because hook event meanings differ.md +40 -0
  192. package/methodology/platform capability tiers determine which knowledge system features can be implemented.md +48 -0
  193. package/methodology/platform fragmentation means identical conceptual operations require different implementations across agent environments.md +44 -0
  194. package/methodology/premature complexity is the most common derivation failure mode.md +45 -0
  195. package/methodology/prevent domain-specific failure modes through the vulnerability matrix.md +336 -0
  196. package/methodology/processing effort should follow retrieval demand.md +57 -0
  197. package/methodology/processing-workflows.md +75 -0
  198. package/methodology/product management uses feedback pipelines with experiment tracking.md +789 -0
  199. package/methodology/productivity porn risk in meta-system building.md +30 -0
  200. package/methodology/programmable notes could enable property-triggered workflows.md +64 -0
  201. package/methodology/progressive disclosure means reading right not reading less.md +69 -0
  202. package/methodology/progressive schema validates only what active modules require not the full system schema.md +49 -0
  203. package/methodology/project management uses decision tracking with stakeholder context.md +776 -0
  204. package/methodology/propositional link semantics transform wiki links from associative to reasoned.md +87 -0
  205. package/methodology/prospective memory requires externalization.md +53 -0
  206. package/methodology/provenance tracks where beliefs come from.md +62 -0
  207. package/methodology/queries evolve during search so agents should checkpoint.md +35 -0
  208. package/methodology/question-answer metadata enables inverted search patterns.md +39 -0
  209. package/methodology/random note resurfacing prevents write-only memory.md +33 -0
  210. package/methodology/reconciliation loops that compare desired state to actual state enable drift correction without continuous monitoring.md +59 -0
  211. package/methodology/reflection synthesizes existing notes into new insight.md +100 -0
  212. package/methodology/retrieval utility should drive design over capture completeness.md +69 -0
  213. package/methodology/retrieval verification loop tests description quality at scale.md +81 -0
  214. package/methodology/role field makes graph structure explicit.md +94 -0
  215. package/methodology/scaffolding enables divergence that fine-tuning cannot.md +67 -0
  216. package/methodology/schema enforcement via validation agents enables soft consistency.md +60 -0
  217. package/methodology/schema evolution follows observe-then-formalize not design-then-enforce.md +65 -0
  218. package/methodology/schema field names are the only domain specific element in the universal note pattern.md +46 -0
  219. package/methodology/schema fields should use domain-native vocabulary not abstract terminology.md +47 -0
  220. package/methodology/schema templates reduce cognitive overhead at capture time.md +55 -0
  221. package/methodology/schema validation hooks externalize inhibitory control that degrades under cognitive load.md +48 -0
  222. package/methodology/schema-enforcement.md +27 -0
  223. package/methodology/self-extension requires context files to contain platform operations knowledge not just methodology.md +47 -0
  224. package/methodology/sense-making vs storage does compression lose essential nuance.md +73 -0
  225. package/methodology/session boundary hooks implement cognitive bookends for orientation and reflection.md +60 -0
  226. package/methodology/session handoff creates continuity without persistent memory.md +43 -0
  227. package/methodology/session outputs are packets for future selves.md +43 -0
  228. package/methodology/session transcript mining enables experiential validation that structural tests cannot provide.md +38 -0
  229. package/methodology/skill context budgets constrain knowledge system complexity on agent platforms.md +52 -0
  230. package/methodology/skills encode methodology so manual execution bypasses quality gates.md +50 -0
  231. package/methodology/small-world topology requires hubs and dense local links.md +99 -0
  232. package/methodology/source attribution enables tracing claims to foundations.md +38 -0
  233. package/methodology/spaced repetition scheduling could optimize vault maintenance.md +44 -0
  234. package/methodology/spreading activation models how agents should traverse.md +79 -0
  235. package/methodology/stale navigation actively misleads because agents trust curated maps completely.md +43 -0
  236. package/methodology/stigmergy coordinates agents through environmental traces without direct communication.md +62 -0
  237. package/methodology/storage versus thinking distinction determines which tool patterns apply.md +56 -0
  238. package/methodology/structure enables navigation without reading everything.md +52 -0
  239. package/methodology/structure without processing provides no value.md +56 -0
  240. package/methodology/student learning uses prerequisite graphs with spaced retrieval.md +770 -0
  241. package/methodology/summary coherence tests composability before filing.md +37 -0
  242. package/methodology/tag rot applies to wiki links because titles serve as both identifier and display text.md +50 -0
  243. package/methodology/temporal media must convert to spatial text for agent traversal.md +43 -0
  244. package/methodology/temporal processing priority creates age-based inbox urgency.md +45 -0
  245. package/methodology/temporal separation of capture and processing preserves context freshness.md +39 -0
  246. package/methodology/ten universal primitives form the kernel of every viable agent knowledge system.md +162 -0
  247. package/methodology/testing effect could enable agent knowledge verification.md +38 -0
  248. package/methodology/the AgentSkills standard embodies progressive disclosure at the skill level.md +40 -0
  249. package/methodology/the derivation engine improves recursively as deployed systems generate observations.md +49 -0
  250. package/methodology/the determinism boundary separates hook methodology from skill methodology.md +46 -0
  251. package/methodology/the fix-versus-report decision depends on determinism reversibility and accumulated trust.md +45 -0
  252. package/methodology/the generation effect requires active transformation not just storage.md +57 -0
  253. package/methodology/the no wrong patches guarantee ensures any valid module combination produces a valid system.md +58 -0
  254. package/methodology/the system is the argument.md +46 -0
  255. package/methodology/the vault constitutes identity for agents.md +86 -0
  256. package/methodology/the vault methodology transfers because it encodes cognitive science not domain specifics.md +47 -0
  257. package/methodology/therapy journal uses warm personality with pattern detection for emotional processing.md +584 -0
  258. package/methodology/three capture schools converge through agent-mediated synthesis.md +55 -0
  259. package/methodology/three concurrent maintenance loops operate at different timescales to catch different classes of problems.md +56 -0
  260. package/methodology/throughput matters more than accumulation.md +58 -0
  261. package/methodology/title as claim enables traversal as reasoning.md +50 -0
  262. package/methodology/topological organization beats temporal for knowledge work.md +52 -0
  263. package/methodology/trading uses conviction tracking with thesis-outcome correlation.md +699 -0
  264. package/methodology/trails transform ephemeral navigation into persistent artifacts.md +39 -0
  265. package/methodology/transform universal vocabulary to domain-native language through six levels.md +259 -0
  266. package/methodology/type field enables structured queries without folder hierarchies.md +53 -0
  267. package/methodology/use-case presets dissolve the tension between composability and simplicity.md +44 -0
  268. package/methodology/vault conventions may impose hidden rigidity on thinking.md +44 -0
  269. package/methodology/verbatim risk applies to agents too.md +31 -0
  270. package/methodology/vibe notetaking is the emerging industry consensus for AI-native self-organization.md +56 -0
  271. package/methodology/vivid memories need verification.md +45 -0
  272. package/methodology/vocabulary-transformation.md +27 -0
  273. package/methodology/voice capture is the highest-bandwidth channel for agent-delegated knowledge systems.md +45 -0
  274. package/methodology/wiki links are the digital evolution of analog indexing.md +73 -0
  275. package/methodology/wiki links as social contract transforms agents into stewards of incomplete references.md +52 -0
  276. package/methodology/wiki links create navigation paths that shape retrieval.md +63 -0
  277. package/methodology/wiki links implement GraphRAG without the infrastructure.md +101 -0
  278. package/methodology/writing for audience blocks authentic creation.md +22 -0
  279. package/methodology/you operate a system that takes notes.md +79 -0
  280. package/openclaw/SKILL.md +110 -0
  281. package/package.json +45 -0
  282. package/platforms/README.md +51 -0
  283. package/platforms/claude-code/generator.md +61 -0
  284. package/platforms/claude-code/hooks/README.md +186 -0
  285. package/platforms/claude-code/hooks/auto-commit.sh.template +38 -0
  286. package/platforms/claude-code/hooks/session-capture.sh.template +72 -0
  287. package/platforms/claude-code/hooks/session-orient.sh.template +189 -0
  288. package/platforms/claude-code/hooks/write-validate.sh.template +106 -0
  289. package/platforms/openclaw/generator.md +82 -0
  290. package/platforms/openclaw/hooks/README.md +89 -0
  291. package/platforms/openclaw/hooks/bootstrap.ts.template +224 -0
  292. package/platforms/openclaw/hooks/command-new.ts.template +165 -0
  293. package/platforms/openclaw/hooks/heartbeat.ts.template +214 -0
  294. package/platforms/shared/features/README.md +70 -0
  295. package/platforms/shared/skill-blocks/graph.md +145 -0
  296. package/platforms/shared/skill-blocks/learn.md +119 -0
  297. package/platforms/shared/skill-blocks/next.md +131 -0
  298. package/platforms/shared/skill-blocks/pipeline.md +326 -0
  299. package/platforms/shared/skill-blocks/ralph.md +616 -0
  300. package/platforms/shared/skill-blocks/reduce.md +1142 -0
  301. package/platforms/shared/skill-blocks/refactor.md +129 -0
  302. package/platforms/shared/skill-blocks/reflect.md +780 -0
  303. package/platforms/shared/skill-blocks/remember.md +524 -0
  304. package/platforms/shared/skill-blocks/rethink.md +574 -0
  305. package/platforms/shared/skill-blocks/reweave.md +680 -0
  306. package/platforms/shared/skill-blocks/seed.md +320 -0
  307. package/platforms/shared/skill-blocks/stats.md +145 -0
  308. package/platforms/shared/skill-blocks/tasks.md +171 -0
  309. package/platforms/shared/skill-blocks/validate.md +323 -0
  310. package/platforms/shared/skill-blocks/verify.md +562 -0
  311. package/platforms/shared/templates/README.md +35 -0
  312. package/presets/experimental/categories.yaml +1 -0
  313. package/presets/experimental/preset.yaml +38 -0
  314. package/presets/experimental/starter/README.md +7 -0
  315. package/presets/experimental/vocabulary.yaml +7 -0
  316. package/presets/personal/categories.yaml +7 -0
  317. package/presets/personal/preset.yaml +41 -0
  318. package/presets/personal/starter/goals.md +21 -0
  319. package/presets/personal/starter/index.md +17 -0
  320. package/presets/personal/starter/life-areas.md +21 -0
  321. package/presets/personal/starter/people.md +21 -0
  322. package/presets/personal/vocabulary.yaml +32 -0
  323. package/presets/research/categories.yaml +8 -0
  324. package/presets/research/preset.yaml +41 -0
  325. package/presets/research/starter/index.md +17 -0
  326. package/presets/research/starter/methods.md +21 -0
  327. package/presets/research/starter/open-questions.md +21 -0
  328. package/presets/research/vocabulary.yaml +33 -0
  329. package/reference/AUDIT-REPORT.md +238 -0
  330. package/reference/claim-map.md +172 -0
  331. package/reference/components.md +327 -0
  332. package/reference/conversation-patterns.md +542 -0
  333. package/reference/derivation-validation.md +649 -0
  334. package/reference/dimension-claim-map.md +134 -0
  335. package/reference/evolution-lifecycle.md +297 -0
  336. package/reference/failure-modes.md +235 -0
  337. package/reference/interaction-constraints.md +204 -0
  338. package/reference/kernel.yaml +242 -0
  339. package/reference/methodology.md +283 -0
  340. package/reference/open-questions.md +279 -0
  341. package/reference/personality-layer.md +302 -0
  342. package/reference/self-space.md +299 -0
  343. package/reference/semantic-vs-keyword.md +288 -0
  344. package/reference/session-lifecycle.md +298 -0
  345. package/reference/templates/base-note.md +16 -0
  346. package/reference/templates/companion-note.md +70 -0
  347. package/reference/templates/creative-note.md +16 -0
  348. package/reference/templates/learning-note.md +16 -0
  349. package/reference/templates/life-note.md +16 -0
  350. package/reference/templates/moc.md +26 -0
  351. package/reference/templates/relationship-note.md +17 -0
  352. package/reference/templates/research-note.md +19 -0
  353. package/reference/templates/session-log.md +24 -0
  354. package/reference/templates/therapy-note.md +16 -0
  355. package/reference/test-fixtures/edge-case-constraints.md +148 -0
  356. package/reference/test-fixtures/multi-domain.md +164 -0
  357. package/reference/test-fixtures/novel-domain-gaming.md +138 -0
  358. package/reference/test-fixtures/research-minimal.md +102 -0
  359. package/reference/test-fixtures/therapy-full.md +155 -0
  360. package/reference/testing-milestones.md +1087 -0
  361. package/reference/three-spaces.md +363 -0
  362. package/reference/tradition-presets.md +203 -0
  363. package/reference/use-case-presets.md +341 -0
  364. package/reference/validate-kernel.sh +432 -0
  365. package/reference/vocabulary-transforms.md +85 -0
  366. package/scripts/sync-thinking.sh +147 -0
  367. package/skill-sources/graph/SKILL.md +567 -0
  368. package/skill-sources/graph/skill.json +17 -0
  369. package/skill-sources/learn/SKILL.md +254 -0
  370. package/skill-sources/learn/skill.json +17 -0
  371. package/skill-sources/next/SKILL.md +407 -0
  372. package/skill-sources/next/skill.json +17 -0
  373. package/skill-sources/pipeline/SKILL.md +314 -0
  374. package/skill-sources/pipeline/skill.json +17 -0
  375. package/skill-sources/ralph/SKILL.md +604 -0
  376. package/skill-sources/ralph/skill.json +17 -0
  377. package/skill-sources/reduce/SKILL.md +1113 -0
  378. package/skill-sources/reduce/skill.json +17 -0
  379. package/skill-sources/refactor/SKILL.md +448 -0
  380. package/skill-sources/refactor/skill.json +17 -0
  381. package/skill-sources/reflect/SKILL.md +747 -0
  382. package/skill-sources/reflect/skill.json +17 -0
  383. package/skill-sources/remember/SKILL.md +534 -0
  384. package/skill-sources/remember/skill.json +17 -0
  385. package/skill-sources/rethink/SKILL.md +658 -0
  386. package/skill-sources/rethink/skill.json +17 -0
  387. package/skill-sources/reweave/SKILL.md +657 -0
  388. package/skill-sources/reweave/skill.json +17 -0
  389. package/skill-sources/seed/SKILL.md +303 -0
  390. package/skill-sources/seed/skill.json +17 -0
  391. package/skill-sources/stats/SKILL.md +371 -0
  392. package/skill-sources/stats/skill.json +17 -0
  393. package/skill-sources/tasks/SKILL.md +402 -0
  394. package/skill-sources/tasks/skill.json +17 -0
  395. package/skill-sources/validate/SKILL.md +310 -0
  396. package/skill-sources/validate/skill.json +17 -0
  397. package/skill-sources/verify/SKILL.md +532 -0
  398. package/skill-sources/verify/skill.json +17 -0
  399. package/skills/add-domain/SKILL.md +441 -0
  400. package/skills/add-domain/skill.json +17 -0
  401. package/skills/architect/SKILL.md +568 -0
  402. package/skills/architect/skill.json +17 -0
  403. package/skills/ask/SKILL.md +388 -0
  404. package/skills/ask/skill.json +17 -0
  405. package/skills/health/SKILL.md +760 -0
  406. package/skills/health/skill.json +17 -0
  407. package/skills/help/SKILL.md +348 -0
  408. package/skills/help/skill.json +17 -0
  409. package/skills/recommend/SKILL.md +553 -0
  410. package/skills/recommend/skill.json +17 -0
  411. package/skills/reseed/SKILL.md +385 -0
  412. package/skills/reseed/skill.json +17 -0
  413. package/skills/setup/SKILL.md +1688 -0
  414. package/skills/setup/skill.json +17 -0
  415. package/skills/tutorial/SKILL.md +496 -0
  416. package/skills/tutorial/skill.json +17 -0
  417. package/skills/upgrade/SKILL.md +395 -0
  418. package/skills/upgrade/skill.json +17 -0
@@ -0,0 +1,760 @@
1
+ ---
2
+ name: health
3
+ description: Run condition-based vault health diagnostics. 8 categories — schema compliance, orphan detection, link health, description quality, three-space boundaries, processing throughput, stale notes, MOC coherence. 3 modes — quick (schema+orphans+links), full (all 8), three-space (boundary violations only). Returns actionable FAIL/WARN/PASS report with specific fixes ranked by impact. Triggers on "/health", "check vault health", "maintenance report", "what needs fixing".
4
+ version: "1.0"
5
+ generated_from: "arscontexta-v1.6"
6
+ context: fork
7
+ model: opus
8
+ allowed-tools: Read, Grep, Glob, Bash, mcp__qmd__vsearch
9
+ argument-hint: "[optional: 'quick', 'full', or 'three-space']"
10
+ ---
11
+
12
+ ## Runtime Configuration (Step 0 — before any processing)
13
+
14
+ Read these files to configure domain-specific behavior:
15
+
16
+ 1. **`ops/derivation-manifest.md`** — vocabulary mapping, folder names, platform hints
17
+ - Use `vocabulary.notes` for the notes folder name
18
+ - Use `vocabulary.inbox` for the inbox folder name
19
+ - Use `vocabulary.note` for the note type name in output
20
+ - Use `vocabulary.topic_map` for MOC/topic map references
21
+ - Use `vocabulary.topic_maps` for plural form
22
+
23
+ 2. **`ops/config.yaml`** — processing depth, thresholds
24
+
25
+ 3. **Three-space reference** — `${CLAUDE_PLUGIN_ROOT}/reference/three-spaces.md` for boundary rules (load only for full and three-space modes)
26
+
27
+ 4. **Templates** — read template files to understand required schema fields for validation
28
+
29
+ If these files don't exist (pre-init invocation or standalone use), use universal defaults:
30
+ - notes folder: `notes/`
31
+ - inbox folder: `inbox/`
32
+ - topic map: topic maps in notes/
33
+
34
+ ---
35
+
36
+ ## EXECUTE NOW
37
+
38
+ **Target: $ARGUMENTS**
39
+
40
+ Parse the invocation mode immediately:
41
+
42
+ | Input | Mode | Categories Run |
43
+ |-------|------|---------------|
44
+ | empty or `quick` | Quick | 1 (Schema), 2 (Orphans), 3 (Links) |
45
+ | `full` | Full | All 8 categories |
46
+ | `three-space` | Three-Space | 5 (Three-Space Boundaries) only |
47
+
48
+ **Execute these steps:**
49
+
50
+ 1. **Detect mode** from arguments
51
+ 2. **Scan the vault** — inventory all note files, {vocabulary.topic_map} files, inbox items, ops files
52
+ 3. **Run each applicable diagnostic category** in order (1-8)
53
+ 4. **Classify each result** as PASS, WARN, or FAIL using the thresholds below
54
+ 5. **Surface condition-based maintenance signals** (check against threshold table)
55
+ 6. **Generate the health report** with specific file paths, counts, and recommended actions
56
+ 7. **Write report to** `ops/health/YYYY-MM-DD-report.md`
57
+
58
+ **START NOW.** Reference below explains each diagnostic category in detail.
59
+
60
+ ### Platform Adaptation
61
+
62
+ Checks adapt to what the platform supports:
63
+ - If semantic search (qmd) is not configured, skip semantic-dependent checks and note their absence
64
+ - If hooks are not available, note that validation is convention-only (no automated enforcement)
65
+ - If self/ directory does not exist (disabled by config), skip self-space checks but verify ops/ absorbs self-space content correctly
66
+
67
+ **Report what CAN be checked, not what the platform lacks.**
68
+
69
+ ---
70
+
71
+ ## The 8 Diagnostic Categories
72
+
73
+ ### Category 1: Schema Compliance (quick, full)
74
+
75
+ **What it checks:** Every {vocabulary.note} in {vocabulary.notes}/ and self/memory/ (if self/ is enabled) has valid YAML frontmatter with required fields.
76
+
77
+ **How to check:**
78
+
79
+ ```bash
80
+ # Find all note files (exclude topic maps)
81
+ for f in {vocabulary.notes}/*.md; do
82
+ [[ -f "$f" ]] || continue
83
+ # Check: YAML frontmatter exists
84
+ head -1 "$f" | grep -q '^---$' || echo "FAIL: $f — no YAML frontmatter"
85
+ # Check: description field present
86
+ rg -q '^description:' "$f" || echo "WARN: $f — missing description field"
87
+ # Check: topics field present and links to at least one topic map
88
+ rg -q '^topics:' "$f" || echo "WARN: $f — missing topics field"
89
+ done
90
+ ```
91
+
92
+ **Additional checks:**
93
+ - Domain-specific enum fields have valid values (check against template `_schema` blocks if templates exist)
94
+ - `description` field is non-empty (not just present)
95
+ - `topics` field contains at least one wiki link
96
+
97
+ **If `validate-kernel.sh` exists** in `${CLAUDE_PLUGIN_ROOT}/reference/`, run it and include results.
98
+
99
+ **Thresholds:**
100
+
101
+ | Condition | Level |
102
+ |-----------|-------|
103
+ | Any note missing YAML frontmatter | FAIL |
104
+ | Any note missing `description` field | WARN |
105
+ | Any note missing `topics` field | WARN |
106
+ | Any invalid enum value | WARN |
107
+ | All notes pass all checks | PASS |
108
+
109
+ **Output format:**
110
+ ```
111
+ [1] Schema Compliance ............ WARN
112
+ 2 notes missing description:
113
+ - notes/example-note.md
114
+ - notes/another-note.md
115
+ 1 note missing topics:
116
+ - notes/orphaned-claim.md
117
+ 12/15 notes fully compliant
118
+ ```
119
+
120
+ ### Category 2: Orphan Detection (quick, full)
121
+
122
+ **What it checks:** Every {vocabulary.note} has at least one incoming wiki link from another file.
123
+
124
+ **How to check:**
125
+
126
+ ```bash
127
+ # For each note file, check if ANY other file links to it
128
+ for f in {vocabulary.notes}/*.md; do
129
+ [[ -f "$f" ]] || continue
130
+ basename=$(basename "$f" .md)
131
+ # Search for [[basename]] in all other files
132
+ count=$(rg -l "\[\[$basename\]\]" --glob '*.md' | grep -v "$f" | wc -l | tr -d ' ')
133
+ if [[ "$count" -eq 0 ]]; then
134
+ echo "WARN: $f — no incoming links (orphan)"
135
+ fi
136
+ done
137
+ ```
138
+
139
+ **Nuance:** Orphans are not automatically failures. A note created today that hasn't been through /{vocabulary.cmd_reflect} yet is expected to be orphaned temporarily. Check file age:
140
+
141
+ | Condition | Level |
142
+ |-----------|-------|
143
+ | Orphan note created < 24 hours ago | INFO (expected — awaiting reflect phase) |
144
+ | Orphan note created 1-7 days ago | WARN |
145
+ | Orphan note older than 7 days | FAIL (persistent orphan needs attention) |
146
+ | No orphans detected | PASS |
147
+
148
+ **Output format:**
149
+ ```
150
+ [2] Orphan Detection ............. WARN
151
+ 3 orphan notes detected:
152
+ - notes/new-claim.md (created 2h ago — awaiting reflect) [INFO]
153
+ - notes/old-observation.md (created 5d ago) [WARN]
154
+ - notes/forgotten-insight.md (created 14d ago) [FAIL]
155
+ Recommendation: run /reflect on forgotten-insight.md and old-observation.md
156
+ ```
157
+
158
+ ### Category 3: Link Health (quick, full)
159
+
160
+ **What it checks:** Every wiki link `[[target]]` in every file resolves to an existing file.
161
+
162
+ **How to check:**
163
+
164
+ ```bash
165
+ # Extract all wiki links from all markdown files
166
+ # For each unique link target, verify a file with that name exists
167
+ rg -oN '\[\[([^\]]+)\]\]' --glob '*.md' -r '$1' | sort -u | while read target; do
168
+ # Search for file matching this name
169
+ found=$(find . -name "$target.md" -not -path "./.git/*" 2>/dev/null | head -1)
170
+ if [[ -z "$found" ]]; then
171
+ echo "FAIL: dangling link [[${target}]] — no file found"
172
+ # Show which files contain this dangling link
173
+ rg -l "\[\[$target\]\]" --glob '*.md'
174
+ fi
175
+ done
176
+ ```
177
+
178
+ **Thresholds:**
179
+
180
+ | Condition | Level |
181
+ |-----------|-------|
182
+ | Any dangling link (target does not exist) | FAIL |
183
+ | All links resolve | PASS |
184
+
185
+ **Why FAIL not WARN:** Dangling links are broken promises. Every `[[link]]` a reader follows that leads nowhere erodes trust in the graph. Fix these immediately.
186
+
187
+ **Output format:**
188
+ ```
189
+ [3] Link Health .................. FAIL
190
+ 2 dangling links found:
191
+ - [[nonexistent-note]] referenced in:
192
+ - notes/some-claim.md (line 14)
193
+ - notes/another-claim.md (line 8)
194
+ - [[removed-topic]] referenced in:
195
+ - notes/old-note.md (line 22)
196
+ Recommendation: create missing notes or remove broken links
197
+ ```
198
+
199
+ ### Category 4: Description Quality (full only)
200
+
201
+ **What it checks:** Every {vocabulary.note}'s description adds genuine information beyond the title — not just a restatement.
202
+
203
+ **How to check:**
204
+
205
+ For each {vocabulary.note}:
206
+ 1. Read the title (filename without extension)
207
+ 2. Read the `description` field from YAML frontmatter
208
+ 3. Evaluate: does the description add scope, mechanism, or implication that the title does not cover?
209
+
210
+ **Quality heuristics:**
211
+
212
+ | Check | Threshold |
213
+ |-------|-----------|
214
+ | Description length | 50-200 chars ideal. < 30 chars = too terse. > 250 chars = too verbose |
215
+ | Restatement detection | If description uses >70% of the same words as the title = restatement |
216
+ | Information added | Description should mention mechanism, scope, or implication not in title |
217
+
218
+ **Thresholds:**
219
+
220
+ | Condition | Level |
221
+ |-----------|-------|
222
+ | Description is a clear restatement of the title | WARN |
223
+ | Description is < 30 characters | WARN |
224
+ | Description is missing entirely | WARN (also caught by Category 1) |
225
+ | Description adds genuine new information | PASS |
226
+
227
+ **This check requires judgment.** Use semantic understanding, not just string matching. A description that uses different words but says the same thing as the title is still a restatement.
228
+
229
+ **Output format:**
230
+ ```
231
+ [4] Description Quality .......... WARN
232
+ 2 descriptions are restatements:
233
+ - notes/quality-matters.md
234
+ Title: "quality matters more than quantity"
235
+ Description: "quality is more important than quantity in knowledge work"
236
+ Issue: restates title without adding mechanism or implication
237
+ - notes/structure-helps.md
238
+ Title: "structure without processing provides no value"
239
+ Description: "having structure without processing it is not valuable"
240
+ Issue: exact restatement
241
+ Recommendation: rewrite descriptions to add scope, mechanism, or implication
242
+ ```
243
+
244
+ ### Category 5: Three-Space Boundary Check (full, three-space)
245
+
246
+ **What it checks:** Content respects the boundaries between self/, {vocabulary.notes}/, and ops/. Each space has a purpose — conflating them degrades search quality, navigation, and trust.
247
+
248
+ **Before running this check:** Read `${CLAUDE_PLUGIN_ROOT}/reference/three-spaces.md` for the full boundary specification.
249
+
250
+ **Six conflation patterns to detect:**
251
+
252
+ #### 5a. Ops into Notes (Infrastructure Creep)
253
+
254
+ Queue state, health metrics, task files, or processing artifacts appearing in {vocabulary.notes}/ directory.
255
+
256
+ **Detection:**
257
+ ```bash
258
+ # Check for ops-pattern YAML fields in notes
259
+ rg '^(current_phase|completed_phases|batch|source_task|queue_id):' {vocabulary.notes}/ --glob '*.md'
260
+ # Check for task file patterns in notes
261
+ rg '## (Create|Reflect|Reweave|Verify|Enrich)$' {vocabulary.notes}/ --glob '*.md'
262
+ ```
263
+
264
+ | Found | Level |
265
+ |-------|-------|
266
+ | Any ops-pattern content in {vocabulary.notes}/ | WARN |
267
+
268
+ #### 5b. Self into Notes (Identity Pollution)
269
+
270
+ Agent identity or methodology content mixed into user's knowledge graph. Agent's operational observations appearing in user's {vocabulary.notes}/ space.
271
+
272
+ **Detection:**
273
+ ```bash
274
+ # Check for agent-reflection patterns in notes (methodology observations, workflow assessments)
275
+ rg -i '(my methodology|I observed that|agent reflection|session learning|I learned)' {vocabulary.notes}/ --glob '*.md'
276
+ ```
277
+
278
+ | Found | Level |
279
+ |-------|-------|
280
+ | Any agent-reflection content in {vocabulary.notes}/ | WARN |
281
+
282
+ #### 5c. Notes into Ops (Trapped Knowledge)
283
+
284
+ Genuine insights trapped in session logs, observations, or ops files that should be promoted to {vocabulary.notes}/.
285
+
286
+ **Detection:**
287
+ ```bash
288
+ # Check for claim-like content in ops that could be notes
289
+ # Look for files with description fields in ops/observations/ or ops/methodology/
290
+ rg '^description:' ops/observations/*.md ops/methodology/*.md 2>/dev/null
291
+ ```
292
+
293
+ | Found | Level |
294
+ |-------|-------|
295
+ | Content in ops/ with note-like schema (description + topics) | INFO (may be intentional, flag for review) |
296
+
297
+ #### 5d. Self into Ops / Ops into Self
298
+
299
+ Temporal state stored in self/ (should be in ops/), or identity content stored in ops/ (should be in self/).
300
+
301
+ **Detection:**
302
+ ```bash
303
+ # Check for temporal/queue content in self/
304
+ rg '^(current_phase|status|queue):' self/ --glob '*.md' 2>/dev/null
305
+ # Check for identity content in ops/
306
+ rg -i '(my identity|I am|who I am|my personality)' ops/ --glob '*.md' 2>/dev/null
307
+ ```
308
+
309
+ #### 5e. Notes into Self
310
+
311
+ Domain knowledge stored in self/ instead of {vocabulary.notes}/.
312
+
313
+ **Detection:**
314
+ ```bash
315
+ # Check self/memory/ for notes that have topics linking to notes-space topic maps
316
+ rg '^topics:.*\[\[' self/memory/*.md 2>/dev/null | grep -v 'identity\|methodology\|goals\|relationships'
317
+ ```
318
+
319
+ #### 5f. Self Space Absence Effects (when self/ is disabled)
320
+
321
+ When self/ is disabled, verify ops/ absorbs self-space content correctly. Check that goals and handoffs are in ops/, not floating in {vocabulary.notes}/.
322
+
323
+ **Detection:**
324
+ ```bash
325
+ # If self/ doesn't exist, check that goals/handoffs are in ops/
326
+ if [[ ! -d "self/" ]]; then
327
+ # Check for goals or handoff content in notes/
328
+ rg -i '(my goals|current goals|handoff|session handoff)' {vocabulary.notes}/ --glob '*.md'
329
+ fi
330
+ ```
331
+
332
+ **Thresholds:**
333
+
334
+ | Condition | Level |
335
+ |-----------|-------|
336
+ | Any boundary violation (5a, 5b, 5d, 5e) | WARN |
337
+ | Trapped knowledge in ops (5c) | INFO |
338
+ | Self-absence effects (5f) | WARN |
339
+ | All boundaries intact | PASS |
340
+
341
+ **Output format:**
342
+ ```
343
+ [5] Three-Space Boundaries ....... WARN
344
+ 1 boundary violation detected:
345
+ Ops into Notes (infrastructure creep):
346
+ - notes/task-tracking.md contains queue state fields (current_phase, batch)
347
+ - Should be in ops/queue/ not notes/
348
+ 1 potential trapped knowledge:
349
+ - ops/observations/interesting-pattern.md has note-like schema
350
+ Consider promoting to notes/ via /reduce or direct creation
351
+ Recommendation: move task-tracking.md to ops/queue/
352
+ ```
353
+
354
+ ### Category 6: Processing Throughput (full only)
355
+
356
+ **What it checks:** The inbox-to-knowledge ratio. High ratios indicate collector's fallacy — capturing more than processing.
357
+
358
+ **How to check:**
359
+
360
+ ```bash
361
+ # Count items in each space
362
+ INBOX_COUNT=$(find {vocabulary.inbox}/ -name '*.md' -not -path '*/archive/*' 2>/dev/null | wc -l | tr -d ' ')
363
+ NOTES_COUNT=$(find {vocabulary.notes}/ -name '*.md' 2>/dev/null | wc -l | tr -d ' ')
364
+ QUEUE_COUNT=$(find ops/queue/ -name '*.md' -not -path '*/archive/*' 2>/dev/null | wc -l | tr -d ' ')
365
+
366
+ # Calculate ratio
367
+ if [[ $((INBOX_COUNT + NOTES_COUNT)) -gt 0 ]]; then
368
+ RATIO=$((INBOX_COUNT * 100 / (INBOX_COUNT + NOTES_COUNT)))
369
+ else
370
+ RATIO=0
371
+ fi
372
+
373
+ echo "Inbox: $INBOX_COUNT | Notes: $NOTES_COUNT | In-progress: $QUEUE_COUNT | Ratio: ${RATIO}%"
374
+ ```
375
+
376
+ **Thresholds:**
377
+
378
+ | Condition | Level |
379
+ |-----------|-------|
380
+ | Inbox-to-total ratio > 75% (3:1 inbox to notes) | FAIL |
381
+ | Inbox-to-total ratio > 50% | WARN |
382
+ | Inbox items > 20 | WARN (regardless of ratio) |
383
+ | Inbox-to-total ratio <= 50% AND inbox <= 20 | PASS |
384
+
385
+ **Output format:**
386
+ ```
387
+ [6] Processing Throughput ........ WARN
388
+ inbox: 12 | notes: 8 | in-progress: 3 | ratio: 60%
389
+ Inbox items outnumber processed notes — collector's fallacy risk
390
+ Recommendation: run /reduce on oldest inbox items or /pipeline for end-to-end processing
391
+ ```
392
+
393
+ ### Category 7: Stale Note Detection (full only)
394
+
395
+ **What it checks:** Notes not modified recently AND with low link density. Staleness is condition-based (low link density + no activity since N new notes were added), not purely calendar-based.
396
+
397
+ **How to check:**
398
+
399
+ For each {vocabulary.note}:
400
+ 1. Check last modified date (`stat` or `git log`)
401
+ 2. Count incoming links (same as orphan detection, but counting instead of boolean)
402
+ 3. Flag notes with: modified > 30 days ago AND < 2 incoming links
403
+
404
+ ```bash
405
+ for f in {vocabulary.notes}/*.md; do
406
+ [[ -f "$f" ]] || continue
407
+ basename=$(basename "$f" .md)
408
+
409
+ # Last modified (days ago)
410
+ mod_days=$(( ($(date +%s) - $(stat -f %m "$f" 2>/dev/null || stat -c %Y "$f" 2>/dev/null)) / 86400 ))
411
+
412
+ # Incoming link count
413
+ incoming=$(rg -l "\[\[$basename\]\]" --glob '*.md' | grep -v "$f" | wc -l | tr -d ' ')
414
+
415
+ if [[ $mod_days -gt 30 ]] && [[ $incoming -lt 2 ]]; then
416
+ echo "STALE: $f — $mod_days days old, $incoming incoming links"
417
+ fi
418
+ done
419
+ ```
420
+
421
+ **Thresholds:**
422
+
423
+ | Condition | Level |
424
+ |-----------|-------|
425
+ | Any note > 30 days old with < 2 incoming links | WARN |
426
+ | Any note > 90 days old with 0 incoming links | FAIL |
427
+ | All notes either recent or well-connected | PASS |
428
+
429
+ **Prioritization:** Sort stale notes by:
430
+ 1. Age (oldest first)
431
+ 2. Link density (least connected first)
432
+ 3. Topic relevance (notes in active topic areas are higher priority)
433
+
434
+ **Output format:**
435
+ ```
436
+ [7] Stale Notes .................. WARN
437
+ 4 stale notes detected (>30d old, <2 incoming links):
438
+ - notes/old-observation.md (92d, 0 links) [FAIL — consider archiving or reweaving]
439
+ - notes/early-claim.md (45d, 1 link) [WARN]
440
+ - notes/setupial-thought.md (38d, 1 link) [WARN]
441
+ - notes/first-draft.md (31d, 0 links) [WARN]
442
+ Recommendation: run /reweave on these notes to find connections, or archive if no longer relevant
443
+ ```
444
+
445
+ ### Category 8: {vocabulary.topic_map} Coherence (full only)
446
+
447
+ **What it checks:** Each {vocabulary.topic_map} has a healthy number of linked notes, and notes in the same topic area are actually linked.
448
+
449
+ **How to check:**
450
+
451
+ For each {vocabulary.topic_map} file:
452
+ 1. Count notes that link TO this {vocabulary.topic_map} (notes with this in their `topics` footer/field)
453
+ 2. Check if there are notes in the same topic area NOT linked to the {vocabulary.topic_map} (coverage gaps)
454
+ 3. Verify context phrases exist on Core Ideas links (not bare links)
455
+
456
+ ```bash
457
+ # For each topic map
458
+ for moc in {vocabulary.notes}/*.md; do
459
+ [[ -f "$moc" ]] || continue
460
+ # Check if this is a topic map (has type: moc in frontmatter)
461
+ rg -q '^type: moc' "$moc" || continue
462
+
463
+ moc_name=$(basename "$moc" .md)
464
+
465
+ # Count notes linking to this topic map
466
+ note_count=$(rg -l "\[\[$moc_name\]\]" {vocabulary.notes}/ --glob '*.md' | grep -v "$moc" | wc -l | tr -d ' ')
467
+
468
+ echo "$moc_name: $note_count notes"
469
+ done
470
+ ```
471
+
472
+ **Thresholds:**
473
+
474
+ | Condition | Level |
475
+ |-----------|-------|
476
+ | {vocabulary.topic_map} with < 5 notes | WARN (underdeveloped — consider merging into parent) |
477
+ | {vocabulary.topic_map} with > 50 notes | WARN (oversized — consider splitting into sub-{vocabulary.topic_maps}) |
478
+ | {vocabulary.topic_map} with > 40 notes | INFO (approaching threshold) |
479
+ | Notes exist in topic area but not linked to {vocabulary.topic_map} | WARN (coverage gap) |
480
+ | All {vocabulary.topic_maps} in 5-50 range with good coverage | PASS |
481
+
482
+ **Context phrase check:**
483
+
484
+ ```bash
485
+ # Check for bare links in topic map Core Ideas (links without context phrases)
486
+ for moc in {vocabulary.notes}/*.md; do
487
+ rg -q '^type: moc' "$moc" || continue
488
+ # Look for "- [[note]]" without " — " context
489
+ rg '^\s*- \[\[' "$moc" | grep -v ' — ' | grep -v '^\s*- \[\[.*\]\].*—'
490
+ done
491
+ ```
492
+
493
+ Bare links without context phrases are address book entries, not navigation. Every link in a {vocabulary.topic_map} should explain WHY to follow it.
494
+
495
+ **Output format:**
496
+ ```
497
+ [8] MOC Coherence ................ WARN
498
+ 3 topic maps checked:
499
+ - knowledge-work: 28 notes [PASS]
500
+ - graph-structure: 52 notes [WARN — oversized, consider splitting]
501
+ 3 bare links without context phrases
502
+ - agent-cognition: 3 notes [WARN — underdeveloped, consider merging]
503
+ Recommendation: split graph-structure into sub-topic-maps; add context phrases to bare links
504
+ ```
505
+
506
+ ---
507
+
508
+ ## Condition-Based Maintenance Signals
509
+
510
+ After running all applicable diagnostic categories, check these condition-based triggers. These are NOT the 8 categories above — they are cross-cutting signals that suggest specific skill invocations.
511
+
512
+ | Condition | Threshold | Recommendation |
513
+ |-----------|-----------|---------------|
514
+ | Pending observations | >= 10 files in ops/observations/ | Consider running /rethink |
515
+ | Open tensions | >= 5 files in ops/tensions/ | Consider running /rethink |
516
+ | Inbox items | >= 3 items | Consider /reduce or /pipeline |
517
+ | Unprocessed sessions | >= 5 files in ops/sessions/ | Consider /remember --mine-sessions |
518
+ | Orphan notes | Any persistent (> 7d) | Run /reflect on orphaned notes |
519
+ | Dangling links | Any | Fix broken references immediately |
520
+ | Stale notes | Low links + old | Consider /reweave |
521
+ | {vocabulary.topic_map} oversized | > 40 notes | Consider splitting |
522
+ | Queue stalled | Tasks pending > 2 sessions without progress | Surface as blocked |
523
+ | Trigger coverage gap | Known maintenance condition has no configured trigger | Flag gap itself |
524
+
525
+ **How to check condition counts:**
526
+
527
+ ```bash
528
+ # Pending observations
529
+ OBS_COUNT=$(find ops/observations/ -name '*.md' 2>/dev/null | wc -l | tr -d ' ')
530
+
531
+ # Open tensions
532
+ TENSION_COUNT=$(find ops/tensions/ -name '*.md' 2>/dev/null | wc -l | tr -d ' ')
533
+
534
+ # Inbox items
535
+ INBOX_COUNT=$(find {vocabulary.inbox}/ -name '*.md' -not -path '*/archive/*' 2>/dev/null | wc -l | tr -d ' ')
536
+
537
+ # Unprocessed sessions
538
+ SESSION_COUNT=$(find ops/sessions/ -name '*.md' 2>/dev/null | wc -l | tr -d ' ')
539
+
540
+ # Queue stalled
541
+ PENDING_TASKS=$(jq '[.tasks[] | select(.status=="pending")] | length' ops/queue/queue.json 2>/dev/null || echo 0)
542
+ ```
543
+
544
+ **The meta-trigger:** Include a "trigger coverage" check. Compare known maintenance conditions against what is actually being checked. If a maintenance condition has no corresponding check or trigger configured, that gap itself is a finding. This prevents the failure mode where maintenance debt accumulates undetected.
545
+
546
+ ---
547
+
548
+ ## Output Format
549
+
550
+ The complete health report follows this structure. Every report, regardless of mode, uses this format.
551
+
552
+ ```
553
+ === HEALTH REPORT ===
554
+ Mode: [quick | full | three-space]
555
+ Date: YYYY-MM-DD
556
+ Notes scanned: N | Topic maps: N | Inbox items: N
557
+
558
+ Summary: N FAIL, N WARN, N PASS
559
+
560
+ FAIL:
561
+ - [Category N]: [brief description of failure]
562
+ [specific files and details]
563
+
564
+ WARN:
565
+ - [Category N]: [brief description of warning]
566
+ [specific files and details]
567
+
568
+ PASS:
569
+ - [Category N]: [confirmation]
570
+
571
+ ---
572
+
573
+ [1] Schema Compliance ............ PASS | WARN | FAIL
574
+ [details — specific files, specific issues]
575
+
576
+ [2] Orphan Detection ............. PASS | WARN | FAIL
577
+ [details — specific files, age, link count]
578
+
579
+ [3] Link Health .................. PASS | WARN | FAIL
580
+ [details — specific dangling links, where referenced]
581
+
582
+ [4] Description Quality .......... PASS | WARN | FAIL (full mode only)
583
+ [details — specific files, title vs description comparison]
584
+
585
+ [5] Three-Space Boundaries ....... PASS | WARN | FAIL (full/three-space mode)
586
+ [details — specific boundary violations by type]
587
+
588
+ [6] Processing Throughput ........ PASS | WARN | FAIL (full mode only)
589
+ inbox: N | notes: N | in-progress: N | ratio: N%
590
+
591
+ [7] Stale Notes .................. PASS | WARN | FAIL (full mode only)
592
+ [N notes older than 30d with <2 incoming links, sorted by priority]
593
+
594
+ [8] MOC Coherence ................ PASS | WARN | FAIL (full mode only)
595
+ [details — note count per topic map, coverage gaps, bare links]
596
+
597
+ ---
598
+
599
+ Maintenance Signals:
600
+ [condition-based triggers from table above, if any thresholds met]
601
+ - observations: N pending (threshold: 10) [TRIGGERED | OK]
602
+ - tensions: N pending (threshold: 5) [TRIGGERED | OK]
603
+ - inbox: N items (threshold: 3) [TRIGGERED | OK]
604
+ - sessions: N unprocessed (threshold: 5) [TRIGGERED | OK]
605
+
606
+ ---
607
+
608
+ Recommended Actions (top 3, ranked by impact):
609
+ 1. [Most impactful action — specific command + specific file]
610
+ 2. [Second priority — specific command + specific file]
611
+ 3. [Third priority — specific command + specific file]
612
+ === END REPORT ===
613
+ ```
614
+
615
+ ### Report Storage
616
+
617
+ Write every health report to `ops/health/YYYY-MM-DD-report.md`. If multiple reports are run on the same day, append a counter: `YYYY-MM-DD-report-2.md`.
618
+
619
+ This creates a health history that /architect can reference when proposing evolution. Trends across reports reveal systemic patterns that individual reports miss.
620
+
621
+ ---
622
+
623
+ ## Quality Standards
624
+
625
+ ### Be Specific
626
+
627
+ Every finding MUST name the specific file(s) involved.
628
+
629
+ Bad: "some notes lack descriptions"
630
+ Good: "notes/example-note.md and notes/another-note.md are missing the description field"
631
+
632
+ Bad: "there are dangling links"
633
+ Good: "[[nonexistent-claim]] is referenced in notes/old-note.md (line 14) and notes/related.md (line 22) but no file with that name exists"
634
+
635
+ ### Prioritize by Impact
636
+
637
+ Not all issues are equal. The recommended actions section ranks by impact:
638
+
639
+ | Impact Tier | Examples | Why |
640
+ |------------|---------|-----|
641
+ | Highest | Dangling links, persistent orphans | Broken promises in the graph — readers hit dead ends |
642
+ | High | Schema violations, boundary violations | Structural integrity — compounds into larger problems |
643
+ | Medium | Description quality, stale notes | Retrieval quality — degraded but not broken |
644
+ | Low | {vocabulary.topic_map} size warnings, throughput ratio | Maintenance debt — matters at scale |
645
+
646
+ ### Don't Overwhelm
647
+
648
+ - Focus on the top 5-10 issues in the recommended actions
649
+ - Group related issues (3 notes missing descriptions = 1 finding, not 3)
650
+ - For large vaults, cap per-category detail at 10 specific files, then summarize: "...and 15 more"
651
+
652
+ ### Distinguish FAIL from WARN
653
+
654
+ | Level | Meaning | Action Required |
655
+ |-------|---------|----------------|
656
+ | FAIL | Structural issue — something is broken | Fix before it compounds |
657
+ | WARN | Improvement opportunity — something is suboptimal | Address when convenient |
658
+ | PASS | Category is healthy | No action needed |
659
+ | INFO | Noteworthy but not actionable | Context for understanding |
660
+
661
+ **FAIL is reserved for:** Dangling links (broken graph), persistent orphans (> 7 days), severe schema violations (missing frontmatter entirely), critical boundary violations.
662
+
663
+ **WARN is for everything else** that is suboptimal but not broken.
664
+
665
+ ---
666
+
667
+ ## Mode-Specific Behavior
668
+
669
+ ### Quick Mode (default)
670
+
671
+ Runs categories 1-3 only: Schema, Orphans, Links.
672
+
673
+ **Use when:**
674
+ - Session start health check
675
+ - Quick pulse on vault integrity
676
+ - After a batch of note creation
677
+
678
+ **Runtime:** Should complete in < 30 seconds for vaults up to 200 notes.
679
+
680
+ ### Full Mode
681
+
682
+ Runs all 8 categories plus maintenance signals.
683
+
684
+ **Use when:**
685
+ - Periodic comprehensive health review
686
+ - After significant vault changes (large batch processing, restructuring)
687
+ - When something "feels wrong" about the vault
688
+ - Before a /architect or /reseed session
689
+
690
+ **Runtime:** May take 1-3 minutes for larger vaults due to description quality analysis and {vocabulary.topic_map} coherence checks.
691
+
692
+ ### Three-Space Mode
693
+
694
+ Runs category 5 only: boundary violation checks.
695
+
696
+ **Use when:**
697
+ - After /reseed to verify boundaries are intact
698
+ - When search results seem contaminated (ops content in knowledge queries)
699
+ - When self/ is being enabled or disabled
700
+ - Debugging "why does my search return weird results?"
701
+
702
+ **Runtime:** Should complete in < 30 seconds.
703
+
704
+ ---
705
+
706
+ ## Edge Cases
707
+
708
+ ### Empty Vault
709
+
710
+ A vault with 0 notes is not unhealthy — it is new. Report:
711
+ ```
712
+ Notes scanned: 0 | Topic maps: 0 | Inbox items: N
713
+ All categories PASS (no notes to check)
714
+ Maintenance Signal: inbox has N items — consider /reduce to start building knowledge
715
+ ```
716
+
717
+ ### Self Space Disabled
718
+
719
+ When self/ does not exist:
720
+ - Skip self-space boundary checks (5b, 5d, 5e inbound)
721
+ - But DO check that ops/ correctly absorbs self-space content (5f)
722
+ - Note in the report: "self/ is disabled — boundary checks adapted accordingly"
723
+
724
+ ### No Semantic Search
725
+
726
+ When qmd/MCP tools are unavailable:
727
+ - Skip any checks that depend on semantic search
728
+ - Note in the report: "Semantic search unavailable — some checks skipped"
729
+ - All file-based checks (schema, orphans, links, boundaries) still run
730
+
731
+ ### Large Vaults (500+ notes)
732
+
733
+ - Cap per-category file listings at 10, then summarize
734
+ - Consider running checks in batches if performance degrades
735
+ - Focus recommended actions on highest-impact items
736
+
737
+ ---
738
+
739
+ ## Integration with Other Skills
740
+
741
+ Health report findings feed into other skills:
742
+
743
+ | Finding | Feeds Into | How |
744
+ |---------|-----------|-----|
745
+ | Orphan notes | /reflect | Run reflect to find connections for orphaned notes |
746
+ | Stale notes | /reweave | Run reweave to update old notes with new connections |
747
+ | Description quality issues | /verify or manual rewrite | Fix descriptions to improve retrieval |
748
+ | Schema violations | /validate | Run validation to fix specific schema issues |
749
+ | Boundary violations | Manual restructuring | Move files to correct space |
750
+ | Processing throughput | /reduce or /pipeline | Process inbox items to improve ratio |
751
+ | {vocabulary.topic_map} oversized | Manual split or /architect | Split oversized {vocabulary.topic_maps} into sub-{vocabulary.topic_maps} |
752
+ | Accumulated observations | /rethink | Review and triage observations |
753
+ | Accumulated tensions | /rethink | Resolve or dissolve tensions |
754
+
755
+ **The health-to-action loop:**
756
+ ```
757
+ /health (diagnose) -> specific findings -> specific skill invocation -> /health (verify fix)
758
+ ```
759
+
760
+ Health is diagnostic only — it measures state without prescribing changes. /architect reads health reports and proposes changes with research backing. The separation matters: health tells you WHAT is wrong, architect tells you WHY and HOW to fix it.