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.
- package/.claude-plugin/marketplace.json +11 -0
- package/.claude-plugin/plugin.json +22 -0
- package/README.md +683 -0
- package/agents/knowledge-guide.md +49 -0
- package/bin/cli.mjs +66 -0
- package/generators/agents-md.md +240 -0
- package/generators/claude-md.md +379 -0
- package/generators/features/atomic-notes.md +124 -0
- package/generators/features/ethical-guardrails.md +58 -0
- package/generators/features/graph-analysis.md +188 -0
- package/generators/features/helper-functions.md +92 -0
- package/generators/features/maintenance.md +164 -0
- package/generators/features/methodology-knowledge.md +70 -0
- package/generators/features/mocs.md +144 -0
- package/generators/features/multi-domain.md +61 -0
- package/generators/features/personality.md +71 -0
- package/generators/features/processing-pipeline.md +428 -0
- package/generators/features/schema.md +149 -0
- package/generators/features/self-evolution.md +229 -0
- package/generators/features/self-space.md +78 -0
- package/generators/features/semantic-search.md +99 -0
- package/generators/features/session-rhythm.md +85 -0
- package/generators/features/templates.md +85 -0
- package/generators/features/wiki-links.md +88 -0
- package/generators/soul-md.md +121 -0
- package/hooks/hooks.json +45 -0
- package/hooks/scripts/auto-commit.sh +44 -0
- package/hooks/scripts/session-capture.sh +35 -0
- package/hooks/scripts/session-orient.sh +86 -0
- package/hooks/scripts/write-validate.sh +42 -0
- package/methodology/AI shifts knowledge systems from externalizing memory to externalizing attention.md +59 -0
- package/methodology/BM25 retrieval fails on full-length descriptions because query term dilution reduces match scores.md +39 -0
- package/methodology/IBIS framework maps claim-based architecture to structured argumentation.md +58 -0
- package/methodology/LLM attention degrades as context fills.md +49 -0
- package/methodology/MOC construction forces synthesis that automated generation from metadata cannot replicate.md +49 -0
- package/methodology/MOC maintenance investment compounds because orientation savings multiply across every future session.md +41 -0
- package/methodology/MOCs are attention management devices not just organizational tools.md +51 -0
- package/methodology/PKM failure follows a predictable cycle.md +50 -0
- package/methodology/ThreadMode to DocumentMode transformation is the core value creation step.md +52 -0
- package/methodology/WIP limits force processing over accumulation.md +53 -0
- package/methodology/Zeigarnik effect validates capture-first philosophy because open loops drain attention.md +42 -0
- package/methodology/academic research uses structured extraction with cross-source synthesis.md +566 -0
- package/methodology/adapt the four-phase processing pipeline to domain-specific throughput needs.md +197 -0
- package/methodology/agent notes externalize navigation intuition that search cannot discover and traversal cannot reconstruct.md +48 -0
- package/methodology/agent self-memory should be architecturally separate from user knowledge systems.md +48 -0
- package/methodology/agent session boundaries create natural automation checkpoints that human-operated systems lack.md +56 -0
- package/methodology/agent-cognition.md +107 -0
- package/methodology/agents are simultaneously methodology executors and subjects creating a unique trust asymmetry.md +66 -0
- package/methodology/aspect-oriented programming solved the same cross-cutting concern problem that hooks solve.md +39 -0
- package/methodology/associative ontologies beat hierarchical taxonomies because heterarchy adapts while hierarchy brittles.md +53 -0
- package/methodology/attention residue may have a minimum granularity that cannot be subdivided.md +46 -0
- package/methodology/auto-commit hooks eliminate prospective memory failures by converting remember-to-act into guaranteed execution.md +47 -0
- package/methodology/automated detection is always safe because it only reads state while automated remediation risks content corruption.md +42 -0
- package/methodology/automation should be retired when its false positive rate exceeds its true positive rate or it catches zero issues.md +56 -0
- package/methodology/backlinks implicitly define notes by revealing usage context.md +35 -0
- package/methodology/backward maintenance asks what would be different if written today.md +62 -0
- package/methodology/balance onboarding enforcement and questions to prevent premature complexity.md +229 -0
- package/methodology/basic level categorization determines optimal MOC granularity.md +51 -0
- package/methodology/batching by context similarity reduces switching costs in agent processing.md +43 -0
- package/methodology/behavioral anti-patterns matter more than tool selection.md +42 -0
- package/methodology/betweenness centrality identifies bridge notes connecting disparate knowledge domains.md +57 -0
- package/methodology/blueprints that teach construction outperform downloads that provide pre-built code for platform-dependent modules.md +42 -0
- package/methodology/bootstrapping principle enables self-improving systems.md +62 -0
- package/methodology/build automatic memory through cognitive offloading and session handoffs.md +285 -0
- package/methodology/capture the reaction to content not just the content itself.md +41 -0
- package/methodology/claims must be specific enough to be wrong.md +36 -0
- package/methodology/closure rituals create clean breaks that prevent attention residue bleed.md +44 -0
- package/methodology/cognitive offloading is the architectural foundation for vault design.md +46 -0
- package/methodology/cognitive outsourcing risk in agent-operated systems.md +55 -0
- package/methodology/coherence maintains consistency despite inconsistent inputs.md +96 -0
- package/methodology/coherent architecture emerges from wiki links spreading activation and small-world topology.md +48 -0
- package/methodology/community detection algorithms can inform when MOCs should split or merge.md +52 -0
- package/methodology/complete navigation requires four complementary types that no single mechanism provides.md +43 -0
- package/methodology/complex systems evolve from simple working systems.md +59 -0
- package/methodology/composable knowledge architecture builds systems from independent toggleable modules not monolithic templates.md +61 -0
- package/methodology/compose multi-domain systems through separate templates and shared graph.md +372 -0
- package/methodology/concept-orientation beats source-orientation for cross-domain connections.md +51 -0
- package/methodology/confidence thresholds gate automated action between the mechanical and judgment zones.md +50 -0
- package/methodology/configuration dimensions interact so choices in one create pressure on others.md +58 -0
- package/methodology/configuration paralysis emerges when derivation surfaces too many decisions.md +44 -0
- package/methodology/context files function as agent operating systems through self-referential self-extension.md +46 -0
- package/methodology/context phrase clarity determines how deep a navigation hierarchy can scale.md +46 -0
- package/methodology/continuous small-batch processing eliminates review dread.md +48 -0
- package/methodology/controlled disorder engineers serendipity through semantic rather than topical linking.md +51 -0
- package/methodology/creative writing uses worldbuilding consistency with character tracking.md +672 -0
- package/methodology/cross-links between MOC territories indicate creative leaps and integration depth.md +43 -0
- package/methodology/dangling links reveal which notes want to exist.md +62 -0
- package/methodology/data exit velocity measures how quickly content escapes vendor lock-in.md +74 -0
- package/methodology/decontextualization risk means atomicity may strip meaning that cannot be recovered.md +48 -0
- package/methodology/dense interlinked research claims enable derivation while sparse references only enable templating.md +47 -0
- package/methodology/dependency resolution through topological sort makes module composition transparent and verifiable.md +56 -0
- package/methodology/derivation generates knowledge systems from composable research claims not template customization.md +63 -0
- package/methodology/derivation-engine.md +27 -0
- package/methodology/derived systems follow a seed-evolve-reseed lifecycle.md +56 -0
- package/methodology/description quality for humans diverges from description quality for keyword search.md +73 -0
- package/methodology/descriptions are retrieval filters not summaries.md +112 -0
- package/methodology/design MOCs as attention management devices with lifecycle governance.md +318 -0
- package/methodology/design-dimensions.md +66 -0
- package/methodology/digital mutability enables note evolution that physical permanence forbids.md +54 -0
- package/methodology/discovery-retrieval.md +48 -0
- package/methodology/distinctiveness scoring treats description quality as measurable.md +69 -0
- package/methodology/does agent processing recover what fast capture loses.md +43 -0
- package/methodology/domain-compositions.md +37 -0
- package/methodology/dual-coding with visual elements could enhance agent traversal.md +55 -0
- package/methodology/each module must be describable in one sentence under 200 characters or it does too many things.md +45 -0
- package/methodology/each new note compounds value by creating traversal paths.md +55 -0
- package/methodology/eight configuration dimensions parameterize the space of possible knowledge systems.md +56 -0
- package/methodology/elaborative encoding is the quality gate for new notes.md +55 -0
- package/methodology/enforce schema with graduated strictness across capture processing and query zones.md +221 -0
- package/methodology/enforcing atomicity can create paralysis when ideas resist decomposition.md +43 -0
- package/methodology/engineering uses technical decision tracking with architectural memory.md +766 -0
- package/methodology/every knowledge domain shares a four-phase processing skeleton that diverges only in the process step.md +53 -0
- package/methodology/evolution observations provide actionable signals for system adaptation.md +67 -0
- package/methodology/external memory shapes cognition more than base model.md +60 -0
- package/methodology/faceted classification treats notes as multi-dimensional objects rather than folder contents.md +65 -0
- package/methodology/failure-modes.md +27 -0
- package/methodology/false universalism applies same processing logic regardless of domain.md +49 -0
- package/methodology/federated wiki pattern enables multi-agent divergence as feature not bug.md +59 -0
- package/methodology/flat files break at retrieval scale.md +75 -0
- package/methodology/forced engagement produces weak connections.md +48 -0
- package/methodology/four abstraction layers separate platform-agnostic from platform-dependent knowledge system features.md +47 -0
- package/methodology/fresh context per task preserves quality better than chaining phases.md +44 -0
- package/methodology/friction reveals architecture.md +63 -0
- package/methodology/friction-driven module adoption prevents configuration debt by adding complexity only at pain points.md +48 -0
- package/methodology/gardening cycle implements tend prune fertilize operations.md +41 -0
- package/methodology/generation effect gate blocks processing without transformation.md +40 -0
- package/methodology/goal-driven memory orchestration enables autonomous domain learning through directed compute allocation.md +41 -0
- package/methodology/good descriptions layer heuristic then mechanism then implication.md +57 -0
- package/methodology/graph-structure.md +65 -0
- package/methodology/guided notes might outperform post-hoc structuring for high-volume capture.md +37 -0
- package/methodology/health wellness uses symptom-trigger correlation with multi-dimensional tracking.md +819 -0
- package/methodology/hook composition creates emergent methodology from independent single-concern components.md +47 -0
- package/methodology/hook enforcement guarantees quality while instruction enforcement merely suggests it.md +51 -0
- package/methodology/hook-driven learning loops create self-improving methodology through observation accumulation.md +62 -0
- package/methodology/hooks are the agent habit system that replaces the missing basal ganglia.md +40 -0
- package/methodology/hooks cannot replace genuine cognitive engagement yet more automation is always tempting.md +87 -0
- package/methodology/hooks enable context window efficiency by delegating deterministic checks to external processes.md +47 -0
- package/methodology/idempotent maintenance operations are safe to automate because running them twice produces the same result as running them once.md +44 -0
- package/methodology/implement condition-based maintenance triggers for derived systems.md +255 -0
- package/methodology/implicit dependencies create distributed monoliths that fail silently across configurations.md +58 -0
- package/methodology/implicit knowledge emerges from traversal.md +55 -0
- package/methodology/incremental formalization happens through repeated touching of old notes.md +60 -0
- package/methodology/incremental reading enables cross-source connection finding.md +39 -0
- package/methodology/index.md +32 -0
- package/methodology/inline links carry richer relationship data than metadata fields.md +91 -0
- package/methodology/insight accretion differs from productivity in knowledge systems.md +41 -0
- package/methodology/intermediate packets enable assembly over creation.md +52 -0
- package/methodology/intermediate representation pattern enables reliable vault operations beyond regex.md +62 -0
- package/methodology/justification chains enable forward backward and evolution reasoning about configuration decisions.md +46 -0
- package/methodology/knowledge system architecture is parameterized by platform capabilities not fixed by methodology.md +51 -0
- package/methodology/knowledge systems become communication partners through complexity and memory humans cannot sustain.md +47 -0
- package/methodology/knowledge systems share universal operations and structural components across all methodology traditions.md +46 -0
- package/methodology/legal case management uses precedent chains with regulatory change propagation.md +892 -0
- package/methodology/live index via periodic regeneration keeps discovery current.md +58 -0
- package/methodology/local-first file formats are inherently agent-native.md +69 -0
- package/methodology/logic column pattern separates reasoning from procedure.md +35 -0
- package/methodology/maintenance operations are more universal than creative pipelines because structural health is domain-invariant.md +47 -0
- package/methodology/maintenance scheduling frequency should match consequence speed not detection capability.md +50 -0
- package/methodology/maintenance targeting should prioritize mechanism and theory notes.md +26 -0
- package/methodology/maintenance-patterns.md +72 -0
- package/methodology/markdown plus YAML plus ripgrep implements a queryable graph database without infrastructure.md +55 -0
- package/methodology/maturity field enables agent context prioritization.md +33 -0
- package/methodology/memory-architecture.md +27 -0
- package/methodology/metacognitive confidence can diverge from retrieval capability.md +42 -0
- package/methodology/metadata reduces entropy enabling precision over recall.md +91 -0
- package/methodology/methodology development should follow the trajectory from documentation to skill to hook as understanding hardens.md +80 -0
- package/methodology/methodology traditions are named points in a shared configuration space not competing paradigms.md +64 -0
- package/methodology/mnemonic medium embeds verification into navigation.md +46 -0
- package/methodology/module communication through shared YAML fields creates loose coupling without direct dependencies.md +44 -0
- package/methodology/module deactivation must account for structural artifacts that survive the toggle.md +49 -0
- package/methodology/multi-domain systems compose through separate templates and shared graph.md +61 -0
- package/methodology/multi-domain-composition.md +27 -0
- package/methodology/narrow folksonomy optimizes for single-operator retrieval unlike broad consensus tagging.md +53 -0
- package/methodology/navigation infrastructure passes through distinct scaling regimes that require qualitative strategy shifts.md +48 -0
- package/methodology/navigational vertigo emerges in pure association systems without local hierarchy.md +54 -0
- package/methodology/note titles should function as APIs enabling sentence transclusion.md +51 -0
- package/methodology/note-design.md +57 -0
- package/methodology/notes are skills /342/200/224 curated knowledge injected when relevant.md" +62 -0
- package/methodology/notes function as cognitive anchors that stabilize attention during complex tasks.md +41 -0
- package/methodology/novel domains derive by mapping knowledge type to closest reference domain then adapting.md +50 -0
- package/methodology/nudge theory explains graduated hook enforcement as choice architecture for agents.md +59 -0
- package/methodology/observation and tension logs function as dead-letter queues for failed automation.md +51 -0
- package/methodology/operational memory and knowledge memory serve different functions in agent architecture.md +48 -0
- package/methodology/operational wisdom requires contextual observation.md +52 -0
- package/methodology/orchestrated vault creation transforms arscontexta from tool to autonomous knowledge factory.md +40 -0
- package/methodology/organic emergence versus active curation creates a fundamental vault governance tension.md +68 -0
- package/methodology/orphan notes are seeds not failures.md +38 -0
- package/methodology/over-automation corrupts quality when hooks encode judgment rather than verification.md +62 -0
- package/methodology/people relationships uses Dunbar-layered graphs with interaction tracking.md +659 -0
- package/methodology/personal assistant uses life area management with review automation.md +610 -0
- package/methodology/platform adapter translation is semantic not mechanical because hook event meanings differ.md +40 -0
- package/methodology/platform capability tiers determine which knowledge system features can be implemented.md +48 -0
- package/methodology/platform fragmentation means identical conceptual operations require different implementations across agent environments.md +44 -0
- package/methodology/premature complexity is the most common derivation failure mode.md +45 -0
- package/methodology/prevent domain-specific failure modes through the vulnerability matrix.md +336 -0
- package/methodology/processing effort should follow retrieval demand.md +57 -0
- package/methodology/processing-workflows.md +75 -0
- package/methodology/product management uses feedback pipelines with experiment tracking.md +789 -0
- package/methodology/productivity porn risk in meta-system building.md +30 -0
- package/methodology/programmable notes could enable property-triggered workflows.md +64 -0
- package/methodology/progressive disclosure means reading right not reading less.md +69 -0
- package/methodology/progressive schema validates only what active modules require not the full system schema.md +49 -0
- package/methodology/project management uses decision tracking with stakeholder context.md +776 -0
- package/methodology/propositional link semantics transform wiki links from associative to reasoned.md +87 -0
- package/methodology/prospective memory requires externalization.md +53 -0
- package/methodology/provenance tracks where beliefs come from.md +62 -0
- package/methodology/queries evolve during search so agents should checkpoint.md +35 -0
- package/methodology/question-answer metadata enables inverted search patterns.md +39 -0
- package/methodology/random note resurfacing prevents write-only memory.md +33 -0
- package/methodology/reconciliation loops that compare desired state to actual state enable drift correction without continuous monitoring.md +59 -0
- package/methodology/reflection synthesizes existing notes into new insight.md +100 -0
- package/methodology/retrieval utility should drive design over capture completeness.md +69 -0
- package/methodology/retrieval verification loop tests description quality at scale.md +81 -0
- package/methodology/role field makes graph structure explicit.md +94 -0
- package/methodology/scaffolding enables divergence that fine-tuning cannot.md +67 -0
- package/methodology/schema enforcement via validation agents enables soft consistency.md +60 -0
- package/methodology/schema evolution follows observe-then-formalize not design-then-enforce.md +65 -0
- package/methodology/schema field names are the only domain specific element in the universal note pattern.md +46 -0
- package/methodology/schema fields should use domain-native vocabulary not abstract terminology.md +47 -0
- package/methodology/schema templates reduce cognitive overhead at capture time.md +55 -0
- package/methodology/schema validation hooks externalize inhibitory control that degrades under cognitive load.md +48 -0
- package/methodology/schema-enforcement.md +27 -0
- package/methodology/self-extension requires context files to contain platform operations knowledge not just methodology.md +47 -0
- package/methodology/sense-making vs storage does compression lose essential nuance.md +73 -0
- package/methodology/session boundary hooks implement cognitive bookends for orientation and reflection.md +60 -0
- package/methodology/session handoff creates continuity without persistent memory.md +43 -0
- package/methodology/session outputs are packets for future selves.md +43 -0
- package/methodology/session transcript mining enables experiential validation that structural tests cannot provide.md +38 -0
- package/methodology/skill context budgets constrain knowledge system complexity on agent platforms.md +52 -0
- package/methodology/skills encode methodology so manual execution bypasses quality gates.md +50 -0
- package/methodology/small-world topology requires hubs and dense local links.md +99 -0
- package/methodology/source attribution enables tracing claims to foundations.md +38 -0
- package/methodology/spaced repetition scheduling could optimize vault maintenance.md +44 -0
- package/methodology/spreading activation models how agents should traverse.md +79 -0
- package/methodology/stale navigation actively misleads because agents trust curated maps completely.md +43 -0
- package/methodology/stigmergy coordinates agents through environmental traces without direct communication.md +62 -0
- package/methodology/storage versus thinking distinction determines which tool patterns apply.md +56 -0
- package/methodology/structure enables navigation without reading everything.md +52 -0
- package/methodology/structure without processing provides no value.md +56 -0
- package/methodology/student learning uses prerequisite graphs with spaced retrieval.md +770 -0
- package/methodology/summary coherence tests composability before filing.md +37 -0
- package/methodology/tag rot applies to wiki links because titles serve as both identifier and display text.md +50 -0
- package/methodology/temporal media must convert to spatial text for agent traversal.md +43 -0
- package/methodology/temporal processing priority creates age-based inbox urgency.md +45 -0
- package/methodology/temporal separation of capture and processing preserves context freshness.md +39 -0
- package/methodology/ten universal primitives form the kernel of every viable agent knowledge system.md +162 -0
- package/methodology/testing effect could enable agent knowledge verification.md +38 -0
- package/methodology/the AgentSkills standard embodies progressive disclosure at the skill level.md +40 -0
- package/methodology/the derivation engine improves recursively as deployed systems generate observations.md +49 -0
- package/methodology/the determinism boundary separates hook methodology from skill methodology.md +46 -0
- package/methodology/the fix-versus-report decision depends on determinism reversibility and accumulated trust.md +45 -0
- package/methodology/the generation effect requires active transformation not just storage.md +57 -0
- package/methodology/the no wrong patches guarantee ensures any valid module combination produces a valid system.md +58 -0
- package/methodology/the system is the argument.md +46 -0
- package/methodology/the vault constitutes identity for agents.md +86 -0
- package/methodology/the vault methodology transfers because it encodes cognitive science not domain specifics.md +47 -0
- package/methodology/therapy journal uses warm personality with pattern detection for emotional processing.md +584 -0
- package/methodology/three capture schools converge through agent-mediated synthesis.md +55 -0
- package/methodology/three concurrent maintenance loops operate at different timescales to catch different classes of problems.md +56 -0
- package/methodology/throughput matters more than accumulation.md +58 -0
- package/methodology/title as claim enables traversal as reasoning.md +50 -0
- package/methodology/topological organization beats temporal for knowledge work.md +52 -0
- package/methodology/trading uses conviction tracking with thesis-outcome correlation.md +699 -0
- package/methodology/trails transform ephemeral navigation into persistent artifacts.md +39 -0
- package/methodology/transform universal vocabulary to domain-native language through six levels.md +259 -0
- package/methodology/type field enables structured queries without folder hierarchies.md +53 -0
- package/methodology/use-case presets dissolve the tension between composability and simplicity.md +44 -0
- package/methodology/vault conventions may impose hidden rigidity on thinking.md +44 -0
- package/methodology/verbatim risk applies to agents too.md +31 -0
- package/methodology/vibe notetaking is the emerging industry consensus for AI-native self-organization.md +56 -0
- package/methodology/vivid memories need verification.md +45 -0
- package/methodology/vocabulary-transformation.md +27 -0
- package/methodology/voice capture is the highest-bandwidth channel for agent-delegated knowledge systems.md +45 -0
- package/methodology/wiki links are the digital evolution of analog indexing.md +73 -0
- package/methodology/wiki links as social contract transforms agents into stewards of incomplete references.md +52 -0
- package/methodology/wiki links create navigation paths that shape retrieval.md +63 -0
- package/methodology/wiki links implement GraphRAG without the infrastructure.md +101 -0
- package/methodology/writing for audience blocks authentic creation.md +22 -0
- package/methodology/you operate a system that takes notes.md +79 -0
- package/openclaw/SKILL.md +110 -0
- package/package.json +45 -0
- package/platforms/README.md +51 -0
- package/platforms/claude-code/generator.md +61 -0
- package/platforms/claude-code/hooks/README.md +186 -0
- package/platforms/claude-code/hooks/auto-commit.sh.template +38 -0
- package/platforms/claude-code/hooks/session-capture.sh.template +72 -0
- package/platforms/claude-code/hooks/session-orient.sh.template +189 -0
- package/platforms/claude-code/hooks/write-validate.sh.template +106 -0
- package/platforms/openclaw/generator.md +82 -0
- package/platforms/openclaw/hooks/README.md +89 -0
- package/platforms/openclaw/hooks/bootstrap.ts.template +224 -0
- package/platforms/openclaw/hooks/command-new.ts.template +165 -0
- package/platforms/openclaw/hooks/heartbeat.ts.template +214 -0
- package/platforms/shared/features/README.md +70 -0
- package/platforms/shared/skill-blocks/graph.md +145 -0
- package/platforms/shared/skill-blocks/learn.md +119 -0
- package/platforms/shared/skill-blocks/next.md +131 -0
- package/platforms/shared/skill-blocks/pipeline.md +326 -0
- package/platforms/shared/skill-blocks/ralph.md +616 -0
- package/platforms/shared/skill-blocks/reduce.md +1142 -0
- package/platforms/shared/skill-blocks/refactor.md +129 -0
- package/platforms/shared/skill-blocks/reflect.md +780 -0
- package/platforms/shared/skill-blocks/remember.md +524 -0
- package/platforms/shared/skill-blocks/rethink.md +574 -0
- package/platforms/shared/skill-blocks/reweave.md +680 -0
- package/platforms/shared/skill-blocks/seed.md +320 -0
- package/platforms/shared/skill-blocks/stats.md +145 -0
- package/platforms/shared/skill-blocks/tasks.md +171 -0
- package/platforms/shared/skill-blocks/validate.md +323 -0
- package/platforms/shared/skill-blocks/verify.md +562 -0
- package/platforms/shared/templates/README.md +35 -0
- package/presets/experimental/categories.yaml +1 -0
- package/presets/experimental/preset.yaml +38 -0
- package/presets/experimental/starter/README.md +7 -0
- package/presets/experimental/vocabulary.yaml +7 -0
- package/presets/personal/categories.yaml +7 -0
- package/presets/personal/preset.yaml +41 -0
- package/presets/personal/starter/goals.md +21 -0
- package/presets/personal/starter/index.md +17 -0
- package/presets/personal/starter/life-areas.md +21 -0
- package/presets/personal/starter/people.md +21 -0
- package/presets/personal/vocabulary.yaml +32 -0
- package/presets/research/categories.yaml +8 -0
- package/presets/research/preset.yaml +41 -0
- package/presets/research/starter/index.md +17 -0
- package/presets/research/starter/methods.md +21 -0
- package/presets/research/starter/open-questions.md +21 -0
- package/presets/research/vocabulary.yaml +33 -0
- package/reference/AUDIT-REPORT.md +238 -0
- package/reference/claim-map.md +172 -0
- package/reference/components.md +327 -0
- package/reference/conversation-patterns.md +542 -0
- package/reference/derivation-validation.md +649 -0
- package/reference/dimension-claim-map.md +134 -0
- package/reference/evolution-lifecycle.md +297 -0
- package/reference/failure-modes.md +235 -0
- package/reference/interaction-constraints.md +204 -0
- package/reference/kernel.yaml +242 -0
- package/reference/methodology.md +283 -0
- package/reference/open-questions.md +279 -0
- package/reference/personality-layer.md +302 -0
- package/reference/self-space.md +299 -0
- package/reference/semantic-vs-keyword.md +288 -0
- package/reference/session-lifecycle.md +298 -0
- package/reference/templates/base-note.md +16 -0
- package/reference/templates/companion-note.md +70 -0
- package/reference/templates/creative-note.md +16 -0
- package/reference/templates/learning-note.md +16 -0
- package/reference/templates/life-note.md +16 -0
- package/reference/templates/moc.md +26 -0
- package/reference/templates/relationship-note.md +17 -0
- package/reference/templates/research-note.md +19 -0
- package/reference/templates/session-log.md +24 -0
- package/reference/templates/therapy-note.md +16 -0
- package/reference/test-fixtures/edge-case-constraints.md +148 -0
- package/reference/test-fixtures/multi-domain.md +164 -0
- package/reference/test-fixtures/novel-domain-gaming.md +138 -0
- package/reference/test-fixtures/research-minimal.md +102 -0
- package/reference/test-fixtures/therapy-full.md +155 -0
- package/reference/testing-milestones.md +1087 -0
- package/reference/three-spaces.md +363 -0
- package/reference/tradition-presets.md +203 -0
- package/reference/use-case-presets.md +341 -0
- package/reference/validate-kernel.sh +432 -0
- package/reference/vocabulary-transforms.md +85 -0
- package/scripts/sync-thinking.sh +147 -0
- package/skill-sources/graph/SKILL.md +567 -0
- package/skill-sources/graph/skill.json +17 -0
- package/skill-sources/learn/SKILL.md +254 -0
- package/skill-sources/learn/skill.json +17 -0
- package/skill-sources/next/SKILL.md +407 -0
- package/skill-sources/next/skill.json +17 -0
- package/skill-sources/pipeline/SKILL.md +314 -0
- package/skill-sources/pipeline/skill.json +17 -0
- package/skill-sources/ralph/SKILL.md +604 -0
- package/skill-sources/ralph/skill.json +17 -0
- package/skill-sources/reduce/SKILL.md +1113 -0
- package/skill-sources/reduce/skill.json +17 -0
- package/skill-sources/refactor/SKILL.md +448 -0
- package/skill-sources/refactor/skill.json +17 -0
- package/skill-sources/reflect/SKILL.md +747 -0
- package/skill-sources/reflect/skill.json +17 -0
- package/skill-sources/remember/SKILL.md +534 -0
- package/skill-sources/remember/skill.json +17 -0
- package/skill-sources/rethink/SKILL.md +658 -0
- package/skill-sources/rethink/skill.json +17 -0
- package/skill-sources/reweave/SKILL.md +657 -0
- package/skill-sources/reweave/skill.json +17 -0
- package/skill-sources/seed/SKILL.md +303 -0
- package/skill-sources/seed/skill.json +17 -0
- package/skill-sources/stats/SKILL.md +371 -0
- package/skill-sources/stats/skill.json +17 -0
- package/skill-sources/tasks/SKILL.md +402 -0
- package/skill-sources/tasks/skill.json +17 -0
- package/skill-sources/validate/SKILL.md +310 -0
- package/skill-sources/validate/skill.json +17 -0
- package/skill-sources/verify/SKILL.md +532 -0
- package/skill-sources/verify/skill.json +17 -0
- package/skills/add-domain/SKILL.md +441 -0
- package/skills/add-domain/skill.json +17 -0
- package/skills/architect/SKILL.md +568 -0
- package/skills/architect/skill.json +17 -0
- package/skills/ask/SKILL.md +388 -0
- package/skills/ask/skill.json +17 -0
- package/skills/health/SKILL.md +760 -0
- package/skills/health/skill.json +17 -0
- package/skills/help/SKILL.md +348 -0
- package/skills/help/skill.json +17 -0
- package/skills/recommend/SKILL.md +553 -0
- package/skills/recommend/skill.json +17 -0
- package/skills/reseed/SKILL.md +385 -0
- package/skills/reseed/skill.json +17 -0
- package/skills/setup/SKILL.md +1688 -0
- package/skills/setup/skill.json +17 -0
- package/skills/tutorial/SKILL.md +496 -0
- package/skills/tutorial/skill.json +17 -0
- package/skills/upgrade/SKILL.md +395 -0
- package/skills/upgrade/skill.json +17 -0
|
@@ -0,0 +1,567 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: graph
|
|
3
|
+
description: Interactive knowledge graph analysis. Routes natural language questions to graph scripts, interprets results in domain vocabulary, and suggests concrete actions. Triggers on "/graph", "/graph health", "/graph triangles", "find synthesis opportunities", "graph analysis".
|
|
4
|
+
version: "1.0"
|
|
5
|
+
generated_from: "arscontexta-v1.6"
|
|
6
|
+
user-invocable: true
|
|
7
|
+
context: fork
|
|
8
|
+
model: opus
|
|
9
|
+
allowed-tools: Read, Grep, Glob, Bash
|
|
10
|
+
argument-hint: "[operation] [target] — operations: health, triangles, bridges, clusters, hubs, siblings, forward, backward, query"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Runtime Configuration (Step 0 — before any processing)
|
|
14
|
+
|
|
15
|
+
Read these files to configure domain-specific behavior:
|
|
16
|
+
|
|
17
|
+
1. **`ops/derivation-manifest.md`** — vocabulary mapping, platform hints
|
|
18
|
+
- Use `vocabulary.notes` for the notes folder name
|
|
19
|
+
- Use `vocabulary.note` / `vocabulary.note_plural` for note type references
|
|
20
|
+
- Use `vocabulary.topic_map` / `vocabulary.topic_map_plural` for MOC references
|
|
21
|
+
- Use `vocabulary.cmd_reflect` for connection-finding command name
|
|
22
|
+
- Use `vocabulary.cmd_reweave` for backward-pass command name
|
|
23
|
+
|
|
24
|
+
2. **`ops/config.yaml`** — for graph thresholds (MOC size limits, orphan thresholds)
|
|
25
|
+
|
|
26
|
+
If no derivation file exists, use universal terms (notes, MOCs, etc.).
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## EXECUTE NOW
|
|
31
|
+
|
|
32
|
+
**Target: $ARGUMENTS**
|
|
33
|
+
|
|
34
|
+
Parse the operation from arguments:
|
|
35
|
+
- If arguments match a known operation: route to that operation
|
|
36
|
+
- If arguments are a natural language question: map to the closest operation (see Interactive Mode)
|
|
37
|
+
- If no arguments: enter interactive mode
|
|
38
|
+
|
|
39
|
+
**START NOW.** Route to the appropriate operation.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Philosophy
|
|
44
|
+
|
|
45
|
+
**The graph IS the knowledge. This skill makes it visible.**
|
|
46
|
+
|
|
47
|
+
Individual {vocabulary.note_plural} are valuable, but their connections create compound value. /graph reveals the structural properties of those connections — where the graph is dense, where it is sparse, where it is fragile, and where synthesis opportunities hide.
|
|
48
|
+
|
|
49
|
+
Every operation produces two things: **findings** (what the analysis reveals) and **actions** (what to do about it). Never dump raw data. Always interpret results with {vocabulary.note} descriptions and domain context. Always suggest specific next steps.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Operations
|
|
54
|
+
|
|
55
|
+
### /graph health
|
|
56
|
+
|
|
57
|
+
Full graph health report: density, orphans, dangling links, coverage.
|
|
58
|
+
|
|
59
|
+
**Step 1: Collect raw metrics**
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Count total notes (excluding MOCs)
|
|
63
|
+
NOTES_DIR="{vocabulary.notes}"
|
|
64
|
+
TOTAL=$(ls -1 "$NOTES_DIR"/*.md 2>/dev/null | wc -l | tr -d ' ')
|
|
65
|
+
MOC_COUNT=$(grep -rl '^type: moc' "$NOTES_DIR"/*.md 2>/dev/null | wc -l | tr -d ' ')
|
|
66
|
+
NOTE_COUNT=$((TOTAL - MOC_COUNT))
|
|
67
|
+
|
|
68
|
+
# Count all wiki links
|
|
69
|
+
LINK_COUNT=$(grep -ohP '\[\[[^\]]+\]\]' "$NOTES_DIR"/*.md 2>/dev/null | wc -l | tr -d ' ')
|
|
70
|
+
|
|
71
|
+
# Calculate link density
|
|
72
|
+
# Density = actual_links / possible_links
|
|
73
|
+
# possible_links = N * (N - 1) for directed graph
|
|
74
|
+
echo "Density: $LINK_COUNT / ($NOTE_COUNT * ($NOTE_COUNT - 1))"
|
|
75
|
+
|
|
76
|
+
# Find orphan notes (zero incoming links)
|
|
77
|
+
for f in "$NOTES_DIR"/*.md; do
|
|
78
|
+
NAME=$(basename "$f" .md)
|
|
79
|
+
INCOMING=$(grep -rl "\[\[$NAME\]\]" "$NOTES_DIR"/ 2>/dev/null | grep -v "$f" | wc -l | tr -d ' ')
|
|
80
|
+
[[ "$INCOMING" -eq 0 ]] && echo "ORPHAN: $NAME"
|
|
81
|
+
done
|
|
82
|
+
|
|
83
|
+
# Find dangling links (links to non-existent files)
|
|
84
|
+
grep -ohP '\[\[([^\]]+)\]\]' "$NOTES_DIR"/*.md 2>/dev/null | sort -u | while read -r link; do
|
|
85
|
+
NAME=$(echo "$link" | sed 's/\[\[//;s/\]\]//')
|
|
86
|
+
[[ ! -f "$NOTES_DIR/$NAME.md" ]] && echo "DANGLING: $NAME"
|
|
87
|
+
done
|
|
88
|
+
|
|
89
|
+
# MOC coverage: % of notes appearing in at least one MOC's Core Ideas
|
|
90
|
+
COVERED=0
|
|
91
|
+
for f in "$NOTES_DIR"/*.md; do
|
|
92
|
+
NAME=$(basename "$f" .md)
|
|
93
|
+
# Skip MOCs themselves
|
|
94
|
+
grep -q '^type: moc' "$f" 2>/dev/null && continue
|
|
95
|
+
# Check if any MOC links to this note
|
|
96
|
+
if grep -rl '^type: moc' "$NOTES_DIR"/*.md 2>/dev/null | xargs grep -l "\[\[$NAME\]\]" >/dev/null 2>&1; then
|
|
97
|
+
COVERED=$((COVERED + 1))
|
|
98
|
+
fi
|
|
99
|
+
done
|
|
100
|
+
echo "Coverage: $COVERED / $NOTE_COUNT"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
If graph helper scripts exist in `ops/scripts/graph/`, use them instead of inline analysis:
|
|
104
|
+
- `ops/scripts/graph/link-density.sh` for density metrics
|
|
105
|
+
- `ops/scripts/graph/orphan-notes.sh` for orphan detection
|
|
106
|
+
- `ops/scripts/graph/dangling-links.sh` for dangling link detection
|
|
107
|
+
|
|
108
|
+
**Step 2: Interpret and present**
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
--=={ graph health }==--
|
|
112
|
+
|
|
113
|
+
{vocabulary.note_plural}: [N] (plus [M] {vocabulary.topic_map_plural})
|
|
114
|
+
Connections: [N] (avg [X] per {vocabulary.note})
|
|
115
|
+
Graph density: [0.XX]
|
|
116
|
+
{vocabulary.topic_map} coverage: [N]% of {vocabulary.note_plural} appear in at least one {vocabulary.topic_map}
|
|
117
|
+
|
|
118
|
+
Orphans ([N]):
|
|
119
|
+
- [[orphan name]] — [description from YAML]
|
|
120
|
+
→ Suggestion: Run /{vocabulary.cmd_reflect} to find connections
|
|
121
|
+
|
|
122
|
+
Dangling Links ([N]):
|
|
123
|
+
- [[missing name]] — referenced from [[source note]]
|
|
124
|
+
→ Suggestion: Create the {vocabulary.note} or remove the link
|
|
125
|
+
|
|
126
|
+
{vocabulary.topic_map} Sizes:
|
|
127
|
+
- [[moc name]]: [N] {vocabulary.note_plural} [OK | WARN: approaching split threshold | WARN: consider merging]
|
|
128
|
+
|
|
129
|
+
Overall: [HEALTHY | NEEDS ATTENTION | FRAGMENTED]
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**Density benchmarks:**
|
|
133
|
+
|
|
134
|
+
| Density | Interpretation |
|
|
135
|
+
|---------|---------------|
|
|
136
|
+
| < 0.02 | Sparse — {vocabulary.note_plural} exist but connections are thin |
|
|
137
|
+
| 0.02-0.06 | Healthy — growing network with meaningful connections |
|
|
138
|
+
| 0.06-0.15 | Dense — well-connected, watch for over-linking |
|
|
139
|
+
| > 0.15 | Very dense — verify connections are genuine, not noise |
|
|
140
|
+
|
|
141
|
+
### /graph triangles
|
|
142
|
+
|
|
143
|
+
Find synthesis opportunities — open triadic closures where A links to B and A links to C, but B does not link to C.
|
|
144
|
+
|
|
145
|
+
**Step 1: Build adjacency data**
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
# For each note, extract outgoing wiki links
|
|
149
|
+
for f in "$NOTES_DIR"/*.md; do
|
|
150
|
+
NAME=$(basename "$f" .md)
|
|
151
|
+
LINKS=$(grep -oP '\[\[([^\]]+)\]\]' "$f" 2>/dev/null | sed 's/\[\[//;s/\]\]//' | sort -u)
|
|
152
|
+
echo "FROM:$NAME"
|
|
153
|
+
echo "$LINKS" | while read -r target; do
|
|
154
|
+
[[ -n "$target" ]] && echo " TO:$target"
|
|
155
|
+
done
|
|
156
|
+
done
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
If `ops/scripts/graph/find-triangles.sh` exists, use it directly.
|
|
160
|
+
|
|
161
|
+
**Step 2: Find open triangles**
|
|
162
|
+
|
|
163
|
+
For each note A with outgoing links to B and C:
|
|
164
|
+
1. Check if B links to C (in either direction)
|
|
165
|
+
2. Check if C links to B (in either direction)
|
|
166
|
+
3. If neither link exists: this is an open triangle (synthesis opportunity)
|
|
167
|
+
|
|
168
|
+
**Step 3: Evaluate and rank**
|
|
169
|
+
|
|
170
|
+
For each open triangle:
|
|
171
|
+
1. Read descriptions of BOTH unlinked {vocabulary.note_plural}
|
|
172
|
+
2. Assess: is there a genuine conceptual relationship that the common parent suggests?
|
|
173
|
+
3. Rank by potential value: how surprising and useful would the connection be?
|
|
174
|
+
|
|
175
|
+
**Step 4: Present top findings**
|
|
176
|
+
|
|
177
|
+
```
|
|
178
|
+
--=={ graph triangles }==--
|
|
179
|
+
|
|
180
|
+
Found [N] synthesis opportunities — pairs of {vocabulary.note_plural} that share
|
|
181
|
+
a common reference but do not reference each other:
|
|
182
|
+
|
|
183
|
+
1. [[note B]] and [[note C]]
|
|
184
|
+
Common parent: [[note A]]
|
|
185
|
+
B: "[description]"
|
|
186
|
+
C: "[description]"
|
|
187
|
+
→ These may benefit from a connection because [specific reasoning
|
|
188
|
+
about WHY B and C might relate through A's lens]
|
|
189
|
+
→ Action: Run /{vocabulary.cmd_reflect} on [[note B]] to evaluate
|
|
190
|
+
|
|
191
|
+
2. [[note D]] and [[note E]]
|
|
192
|
+
Common parent: [[note F]]
|
|
193
|
+
...
|
|
194
|
+
|
|
195
|
+
[Show top 10. If more exist: "[N] more triangles found. Show all? (yes/no)"]
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
**Filter out trivial triangles:** Skip pairs where:
|
|
199
|
+
- Both are in the same {vocabulary.topic_map} (they may already be related through the MOC without direct links)
|
|
200
|
+
- One is a {vocabulary.topic_map} itself (MOCs link to everything, triangles with MOCs are noise)
|
|
201
|
+
- The descriptions suggest no conceptual overlap
|
|
202
|
+
|
|
203
|
+
### /graph bridges
|
|
204
|
+
|
|
205
|
+
Identify structurally critical {vocabulary.note_plural} whose removal would disconnect graph regions.
|
|
206
|
+
|
|
207
|
+
**Step 1: Build adjacency list**
|
|
208
|
+
|
|
209
|
+
Build a bidirectional adjacency list from all wiki links in {vocabulary.notes}/.
|
|
210
|
+
|
|
211
|
+
If `ops/scripts/graph/find-bridges.sh` exists, use it directly.
|
|
212
|
+
|
|
213
|
+
**Step 2: Find bridge nodes**
|
|
214
|
+
|
|
215
|
+
A bridge note is one where:
|
|
216
|
+
- Removing it (and its links) would split a connected component into two or more components
|
|
217
|
+
- It is the SOLE connection between clusters of {vocabulary.note_plural}
|
|
218
|
+
|
|
219
|
+
Implementation: For each note, temporarily remove it and check if the remaining graph has more connected components.
|
|
220
|
+
|
|
221
|
+
**Step 3: Present findings**
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
--=={ graph bridges }==--
|
|
225
|
+
|
|
226
|
+
Found [N] bridge {vocabulary.note_plural} — structurally critical nodes whose
|
|
227
|
+
removal would disconnect graph regions:
|
|
228
|
+
|
|
229
|
+
1. [[bridge note]] — connects [N] {vocabulary.note_plural} on one side to [M] on the other
|
|
230
|
+
Description: "[description]"
|
|
231
|
+
Cluster A: [[note1]], [[note2]], ...
|
|
232
|
+
Cluster B: [[note3]], [[note4]], ...
|
|
233
|
+
→ Risk: If this {vocabulary.note} becomes stale, [N+M] {vocabulary.note_plural}
|
|
234
|
+
lose their connection path
|
|
235
|
+
→ Action: Consider adding parallel connections between the clusters
|
|
236
|
+
|
|
237
|
+
[If no bridges: "No bridge notes found. The graph has redundant paths between
|
|
238
|
+
all connected regions. This is healthy."]
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### /graph clusters
|
|
242
|
+
|
|
243
|
+
Discover connected components and topic boundaries.
|
|
244
|
+
|
|
245
|
+
**Step 1: Build adjacency list**
|
|
246
|
+
|
|
247
|
+
Build a bidirectional adjacency list from all wiki links.
|
|
248
|
+
|
|
249
|
+
If `ops/scripts/graph/find-clusters.sh` exists, use it directly.
|
|
250
|
+
|
|
251
|
+
**Step 2: Find connected components**
|
|
252
|
+
|
|
253
|
+
Use BFS/DFS to find all connected components:
|
|
254
|
+
1. Start with any unvisited note
|
|
255
|
+
2. Traverse all reachable notes via wiki links (bidirectional)
|
|
256
|
+
3. Mark as one component
|
|
257
|
+
4. Repeat until all notes visited
|
|
258
|
+
|
|
259
|
+
**Step 3: Analyze clusters**
|
|
260
|
+
|
|
261
|
+
For each cluster:
|
|
262
|
+
- Size (number of {vocabulary.note_plural})
|
|
263
|
+
- Key {vocabulary.note_plural} (highest link count within cluster)
|
|
264
|
+
- Topic coverage (which {vocabulary.topic_map_plural} are represented)
|
|
265
|
+
- Isolation level (how many links cross cluster boundaries)
|
|
266
|
+
|
|
267
|
+
**Step 4: Present findings**
|
|
268
|
+
|
|
269
|
+
```
|
|
270
|
+
--=={ graph clusters }==--
|
|
271
|
+
|
|
272
|
+
Found [N] connected components:
|
|
273
|
+
|
|
274
|
+
Cluster 1: [size] {vocabulary.note_plural}
|
|
275
|
+
Key nodes: [[note1]] (8 links), [[note2]] (6 links)
|
|
276
|
+
Topics: [[topic A]], [[topic B]]
|
|
277
|
+
Cross-cluster links: [N]
|
|
278
|
+
→ This cluster is [well-connected | isolated | a hub]
|
|
279
|
+
|
|
280
|
+
Cluster 2: [size] {vocabulary.note_plural}
|
|
281
|
+
...
|
|
282
|
+
|
|
283
|
+
Isolated {vocabulary.note_plural} ([N]):
|
|
284
|
+
- [[isolated note]] — [description]
|
|
285
|
+
→ Action: Run /{vocabulary.cmd_reflect} to find connections
|
|
286
|
+
|
|
287
|
+
[If 1 cluster: "All {vocabulary.note_plural} are in one connected component.
|
|
288
|
+
The graph is fully connected. This is healthy."]
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### /graph hubs
|
|
292
|
+
|
|
293
|
+
Rank {vocabulary.note_plural} by influence — most-linked-to (authorities) and most-linking-from (hubs).
|
|
294
|
+
|
|
295
|
+
**Step 1: Count links**
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
# Authority score: incoming links per note
|
|
299
|
+
for f in "$NOTES_DIR"/*.md; do
|
|
300
|
+
NAME=$(basename "$f" .md)
|
|
301
|
+
INCOMING=$(grep -rl "\[\[$NAME\]\]" "$NOTES_DIR"/ 2>/dev/null | grep -v "$f" | wc -l | tr -d ' ')
|
|
302
|
+
echo "AUTH:$INCOMING:$NAME"
|
|
303
|
+
done | sort -t: -k2 -rn | head -10
|
|
304
|
+
|
|
305
|
+
# Hub score: outgoing links per note
|
|
306
|
+
for f in "$NOTES_DIR"/*.md; do
|
|
307
|
+
NAME=$(basename "$f" .md)
|
|
308
|
+
OUTGOING=$(grep -oP '\[\[[^\]]+\]\]' "$f" 2>/dev/null | wc -l | tr -d ' ')
|
|
309
|
+
echo "HUB:$OUTGOING:$NAME"
|
|
310
|
+
done | sort -t: -k2 -rn | head -10
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
If `ops/scripts/graph/influence-flow.sh` exists, use it directly.
|
|
314
|
+
|
|
315
|
+
**Step 2: Identify synthesizers**
|
|
316
|
+
|
|
317
|
+
Synthesizer {vocabulary.note_plural} score high on BOTH metrics — they absorb many inputs (high authority) and produce many outputs (high hub). These are the most structurally important {vocabulary.note_plural} in the graph.
|
|
318
|
+
|
|
319
|
+
**Step 3: Present findings**
|
|
320
|
+
|
|
321
|
+
```
|
|
322
|
+
--=={ graph hubs }==--
|
|
323
|
+
|
|
324
|
+
Top Authorities (most-linked-to):
|
|
325
|
+
1. [[note]] — [N] incoming links — "[description]"
|
|
326
|
+
2. [[note]] — [N] incoming links — "[description]"
|
|
327
|
+
...
|
|
328
|
+
|
|
329
|
+
Top Hubs (most-linking-from):
|
|
330
|
+
1. [[note]] — [N] outgoing links — "[description]"
|
|
331
|
+
2. [[note]] — [N] outgoing links — "[description]"
|
|
332
|
+
...
|
|
333
|
+
|
|
334
|
+
Synthesizers (high on both — structurally important):
|
|
335
|
+
1. [[note]] — [N] in / [M] out — "[description]"
|
|
336
|
+
...
|
|
337
|
+
|
|
338
|
+
[If no clear synthesizers: "No notes score high on both metrics.
|
|
339
|
+
This suggests the graph has separate input and output layers."]
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
### /graph siblings [[topic]]
|
|
343
|
+
|
|
344
|
+
Find unconnected {vocabulary.note_plural} within a topic — {vocabulary.note_plural} sharing the same {vocabulary.topic_map} but not linking to each other.
|
|
345
|
+
|
|
346
|
+
**Step 1: Read the specified {vocabulary.topic_map}**
|
|
347
|
+
|
|
348
|
+
Find and read the {vocabulary.topic_map} matching the argument. Extract all {vocabulary.note_plural} linked in Core Ideas.
|
|
349
|
+
|
|
350
|
+
**Step 2: Check pairwise connections**
|
|
351
|
+
|
|
352
|
+
For each pair of {vocabulary.note_plural} in the {vocabulary.topic_map}:
|
|
353
|
+
1. Does A link to B? (grep for `[[B]]` in A's file)
|
|
354
|
+
2. Does B link to A? (grep for `[[A]]` in B's file)
|
|
355
|
+
3. If neither: this is an unconnected sibling pair
|
|
356
|
+
|
|
357
|
+
If `ops/scripts/graph/topic-siblings.sh` exists, use it with the topic argument.
|
|
358
|
+
|
|
359
|
+
**Step 3: Evaluate pairs**
|
|
360
|
+
|
|
361
|
+
For each unconnected pair:
|
|
362
|
+
- Read both descriptions
|
|
363
|
+
- Assess whether a connection SHOULD exist
|
|
364
|
+
- Rate as: likely connection, possible connection, appropriately separate
|
|
365
|
+
|
|
366
|
+
**Step 4: Present findings**
|
|
367
|
+
|
|
368
|
+
```
|
|
369
|
+
--=={ graph siblings: [[topic]] }==--
|
|
370
|
+
|
|
371
|
+
{vocabulary.topic_map} [[topic]] has [N] {vocabulary.note_plural}.
|
|
372
|
+
Found [M] unconnected sibling pairs:
|
|
373
|
+
|
|
374
|
+
Likely connections:
|
|
375
|
+
1. [[note A]] and [[note B]]
|
|
376
|
+
A: "[description]"
|
|
377
|
+
B: "[description]"
|
|
378
|
+
→ [Why these likely relate]
|
|
379
|
+
|
|
380
|
+
Possible connections:
|
|
381
|
+
2. [[note C]] and [[note D]]
|
|
382
|
+
...
|
|
383
|
+
|
|
384
|
+
Appropriately separate: [N] pairs — no connection needed
|
|
385
|
+
|
|
386
|
+
→ Action: Run /{vocabulary.cmd_reflect} on the "likely" pairs
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
### /graph forward [[note]] [depth]
|
|
390
|
+
|
|
391
|
+
N-hop forward traversal from a {vocabulary.note}. Default depth: 2.
|
|
392
|
+
|
|
393
|
+
**Step 1: Start from the specified {vocabulary.note}**
|
|
394
|
+
|
|
395
|
+
Read the {vocabulary.note} and extract all outgoing wiki links (hop 1).
|
|
396
|
+
|
|
397
|
+
If `ops/scripts/graph/n-hop-forward.sh` exists, use it with the note and depth arguments.
|
|
398
|
+
|
|
399
|
+
**Step 2: Traverse**
|
|
400
|
+
|
|
401
|
+
For each linked {vocabulary.note}:
|
|
402
|
+
1. Read it and extract its outgoing wiki links (hop 2)
|
|
403
|
+
2. Continue to specified depth
|
|
404
|
+
3. Track visited notes to avoid cycles
|
|
405
|
+
|
|
406
|
+
**Step 3: Present as annotated tree**
|
|
407
|
+
|
|
408
|
+
```
|
|
409
|
+
--=={ forward traversal: [[note]] (depth [N]) }==--
|
|
410
|
+
|
|
411
|
+
[[root note]] — "[description]"
|
|
412
|
+
├── [[link 1]] — "[description]"
|
|
413
|
+
│ ├── [[link 1a]] — "[description]"
|
|
414
|
+
│ └── [[link 1b]] — "[description]"
|
|
415
|
+
├── [[link 2]] — "[description]"
|
|
416
|
+
│ └── [[link 2a]] — "[description]"
|
|
417
|
+
└── [[link 3]] — "[description]"
|
|
418
|
+
|
|
419
|
+
Reached [N] {vocabulary.note_plural} in [depth] hops.
|
|
420
|
+
Dead ends (no outgoing links): [[note X]], [[note Y]]
|
|
421
|
+
Cycles detected: [[note]] → ... → [[note]] (skipped)
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
### /graph backward [[note]] [depth]
|
|
425
|
+
|
|
426
|
+
N-hop backward traversal to a {vocabulary.note}. Default depth: 2.
|
|
427
|
+
|
|
428
|
+
**Step 1: Start from the specified {vocabulary.note}**
|
|
429
|
+
|
|
430
|
+
Find all notes that link TO this {vocabulary.note} (hop 1).
|
|
431
|
+
|
|
432
|
+
```bash
|
|
433
|
+
NAME="[note name]"
|
|
434
|
+
grep -rl "\[\[$NAME\]\]" "$NOTES_DIR"/*.md 2>/dev/null
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
If `ops/scripts/graph/recursive-backlinks.sh` exists, use it with the note and depth arguments.
|
|
438
|
+
|
|
439
|
+
**Step 2: Traverse backward**
|
|
440
|
+
|
|
441
|
+
For each linking {vocabulary.note}:
|
|
442
|
+
1. Find what links to IT (hop 2)
|
|
443
|
+
2. Continue to specified depth
|
|
444
|
+
3. Track visited notes to avoid cycles
|
|
445
|
+
|
|
446
|
+
**Step 3: Present as annotated tree**
|
|
447
|
+
|
|
448
|
+
```
|
|
449
|
+
--=={ backward traversal: [[note]] (depth [N]) }==--
|
|
450
|
+
|
|
451
|
+
[[root note]] — "[description]"
|
|
452
|
+
├── [[referrer 1]] — "[description]"
|
|
453
|
+
│ ├── [[referrer 1a]] — "[description]"
|
|
454
|
+
│ └── [[referrer 1b]] — "[description]"
|
|
455
|
+
├── [[referrer 2]] — "[description]"
|
|
456
|
+
│ └── [[referrer 2a]] — "[description]"
|
|
457
|
+
└── [[referrer 3]] — "[description]"
|
|
458
|
+
|
|
459
|
+
[N] {vocabulary.note_plural} lead to [[root note]] within [depth] hops.
|
|
460
|
+
Entry points (no incoming links): [[note X]], [[note Y]]
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
### /graph query [field] [value]
|
|
464
|
+
|
|
465
|
+
Schema-level YAML query across {vocabulary.note_plural}.
|
|
466
|
+
|
|
467
|
+
**Step 1: Parse field and value**
|
|
468
|
+
|
|
469
|
+
Supported query patterns:
|
|
470
|
+
|
|
471
|
+
| Query | Ripgrep Pattern | Purpose |
|
|
472
|
+
|-------|----------------|---------|
|
|
473
|
+
| `topics [[X]]` | `rg '^topics:.*\[\[X\]\]'` | Find notes in a topic |
|
|
474
|
+
| `type tension` | `rg '^type: tension'` | Find notes by type |
|
|
475
|
+
| `methodology X` | `rg '^methodology:.*X'` | Find notes by tradition |
|
|
476
|
+
| `status open` | `rg '^status: open'` | Find notes by status |
|
|
477
|
+
| `created 2026-02` | `rg '^created: 2026-02'` | Find notes by date range |
|
|
478
|
+
| `source [[X]]` | `rg '^source:.*\[\[X\]\]'` | Find notes from a source |
|
|
479
|
+
|
|
480
|
+
**Step 2: Execute query**
|
|
481
|
+
|
|
482
|
+
```bash
|
|
483
|
+
rg "^{field}:.*{value}" "$NOTES_DIR"/*.md -l 2>/dev/null
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
For each matching file, extract the description for context.
|
|
487
|
+
|
|
488
|
+
**Step 3: Present results**
|
|
489
|
+
|
|
490
|
+
```
|
|
491
|
+
--=={ graph query: {field} = {value} }==--
|
|
492
|
+
|
|
493
|
+
Found [N] {vocabulary.note_plural}:
|
|
494
|
+
|
|
495
|
+
1. [[note name]] — "[description]"
|
|
496
|
+
2. [[note name]] — "[description]"
|
|
497
|
+
...
|
|
498
|
+
|
|
499
|
+
Distribution:
|
|
500
|
+
[If querying topics: how many per sub-topic]
|
|
501
|
+
[If querying type: breakdown by status]
|
|
502
|
+
[If querying methodology: breakdown by tradition]
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
---
|
|
506
|
+
|
|
507
|
+
## Interactive Mode
|
|
508
|
+
|
|
509
|
+
If no arguments provided:
|
|
510
|
+
|
|
511
|
+
1. Ask: "What would you like to know about your knowledge graph?"
|
|
512
|
+
2. Map natural language to operation:
|
|
513
|
+
|
|
514
|
+
| User Says | Maps To | Why |
|
|
515
|
+
|-----------|---------|-----|
|
|
516
|
+
| "Where should I look for connections?" | triangles | Finding synthesis opportunities |
|
|
517
|
+
| "What are my most important notes?" | hubs | Authority/hub ranking |
|
|
518
|
+
| "Are there isolated areas?" | clusters | Connected component detection |
|
|
519
|
+
| "How healthy is my graph?" | health | Full health report |
|
|
520
|
+
| "What bridges my topics?" | bridges | Bridge note identification |
|
|
521
|
+
| "What connects to [[X]]?" | backward [[X]] | Backward traversal |
|
|
522
|
+
| "Where does [[X]] lead?" | forward [[X]] | Forward traversal |
|
|
523
|
+
| "Show me notes about [topic]" | query topics [[topic]] | Schema query |
|
|
524
|
+
| "What needs connecting in [topic]?" | siblings [[topic]] | Unconnected sibling pairs |
|
|
525
|
+
|
|
526
|
+
3. Run the mapped operation
|
|
527
|
+
4. After presenting results, offer follow-up: "Want to explore any of these further?"
|
|
528
|
+
|
|
529
|
+
---
|
|
530
|
+
|
|
531
|
+
## Output Rules
|
|
532
|
+
|
|
533
|
+
- **Never dump raw data.** Always interpret results with {vocabulary.note} descriptions and context.
|
|
534
|
+
- **Always suggest actions.** "Run /{vocabulary.cmd_reflect} on these pairs" or "Consider adding a bridge {vocabulary.note} about X."
|
|
535
|
+
- **Use domain vocabulary** for all labels and descriptions — {vocabulary.note}, {vocabulary.topic_map}, etc.
|
|
536
|
+
- **For large result sets,** summarize top findings (max 10) and offer to show more: "[N] more results. Show all? (yes/no)"
|
|
537
|
+
- **Include density benchmarks** for context — "your density of 0.04 is in the healthy range."
|
|
538
|
+
- **Distinguish structural from semantic.** Graph analysis reveals structural properties. Semantic judgment about WHETHER connections should exist requires /{vocabulary.cmd_reflect}.
|
|
539
|
+
|
|
540
|
+
---
|
|
541
|
+
|
|
542
|
+
## Edge Cases
|
|
543
|
+
|
|
544
|
+
### Small Vault (<10 notes)
|
|
545
|
+
|
|
546
|
+
Report metrics but contextualize: "With [N] {vocabulary.note_plural}, graph analysis provides limited insight. Graph operations become more valuable as the knowledge graph grows. Current metrics are baseline measurements."
|
|
547
|
+
|
|
548
|
+
All operations still run — they just produce less data.
|
|
549
|
+
|
|
550
|
+
### No Graph Scripts Available
|
|
551
|
+
|
|
552
|
+
If `ops/scripts/graph/` does not exist or individual scripts are missing, implement the analysis inline using grep, file reads, and bash loops as shown in each operation's steps. The inline implementations are complete — scripts are optimization, not requirements.
|
|
553
|
+
|
|
554
|
+
### No ops/derivation-manifest.md
|
|
555
|
+
|
|
556
|
+
Use universal vocabulary (notes, MOCs, etc.). All operations work identically.
|
|
557
|
+
|
|
558
|
+
### Empty Notes Directory
|
|
559
|
+
|
|
560
|
+
Report: "No {vocabulary.note_plural} found in {vocabulary.notes}/. Start by capturing content to build your knowledge graph."
|
|
561
|
+
|
|
562
|
+
### Note Not Found (for forward/backward/siblings)
|
|
563
|
+
|
|
564
|
+
If the specified {vocabulary.note} or {vocabulary.topic_map} does not exist:
|
|
565
|
+
1. Search for partial matches: `ls "$NOTES_DIR"/*{query}*.md 2>/dev/null`
|
|
566
|
+
2. If matches found: "Did you mean: [[match1]], [[match2]]?"
|
|
567
|
+
3. If no matches: "{vocabulary.note} '[[name]]' not found. Check the name and try again."
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "knowledge-graph",
|
|
3
|
+
"description": "Interactive knowledge graph analysis. Routes natural language questions to graph scripts, interprets results in domain vocabulary, and suggests concrete actions.",
|
|
4
|
+
"version": "0.4.0",
|
|
5
|
+
"author": "arscontexta",
|
|
6
|
+
"tags": ["knowledge-management", "analytics", "maintenance"],
|
|
7
|
+
"entry": "SKILL.md",
|
|
8
|
+
"platform_hints": {
|
|
9
|
+
"claude-code": {
|
|
10
|
+
"context": "fork",
|
|
11
|
+
"model": "opus"
|
|
12
|
+
},
|
|
13
|
+
"openclaw": {
|
|
14
|
+
"type": "external"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|