arkaos 4.22.0 → 4.23.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/THE-ARKAOS-GUIDE.md +72 -0
- package/VERSION +1 -1
- package/arka/SKILL.md +28 -6
- package/arka/skills/bootstrap-agent/SKILL.md +3 -2
- package/arka/skills/flow/SKILL.md +3 -2
- package/arka/skills/forge/SKILL.md +3 -2
- package/arka/skills/recipes/SKILL.md +3 -2
- package/arka/skills/refine/SKILL.md +3 -2
- package/arka/skills/research/SKILL.md +3 -2
- package/bin/arka-doctor +8 -0
- package/core/cognition/insights/store.py +15 -4
- package/core/forge/persistence.py +27 -9
- package/core/forge/schema.py +45 -22
- package/core/governance/evidence_checks.py +101 -9
- package/core/governance/kb_cite_check.py +16 -6
- package/core/governance/stop_lint.py +38 -11
- package/core/governance/stop_lint_telemetry.py +11 -2
- package/core/hooks/user_prompt_submit.py +21 -23
- package/core/synapse/engine.py +46 -16
- package/core/synapse/graph_context_layer.py +7 -2
- package/core/synapse/kb_cache.py +63 -16
- package/core/synapse/layers.py +93 -30
- package/core/synapse/layers_base.py +16 -0
- package/core/synapse/layers_kb.py +325 -19
- package/dashboard/app/layouts/default.vue +7 -0
- package/dashboard/app/pages/plan-canvas.vue +630 -0
- package/departments/brand/SKILL.md +3 -2
- package/departments/brand/skills/archetype-finder/SKILL.md +3 -2
- package/departments/brand/skills/colors/SKILL.md +3 -2
- package/departments/brand/skills/design-system/SKILL.md +3 -2
- package/departments/brand/skills/identity-system/SKILL.md +3 -2
- package/departments/brand/skills/logo-brief/SKILL.md +3 -2
- package/departments/brand/skills/mockup-generate/SKILL.md +3 -2
- package/departments/brand/skills/naming-evaluate/SKILL.md +3 -2
- package/departments/brand/skills/positioning-statement/SKILL.md +3 -2
- package/departments/brand/skills/primal-audit/SKILL.md +3 -2
- package/departments/brand/skills/ux-audit/SKILL.md +3 -2
- package/departments/brand/skills/voice-guide/SKILL.md +3 -2
- package/departments/brand/skills/wireframe/SKILL.md +3 -2
- package/departments/community/SKILL.md +3 -2
- package/departments/community/skills/ai-community/SKILL.md +3 -2
- package/departments/community/skills/betting-setup/SKILL.md +3 -2
- package/departments/community/skills/business-model/SKILL.md +3 -2
- package/departments/community/skills/content-calendar/SKILL.md +3 -2
- package/departments/community/skills/events-plan/SKILL.md +3 -2
- package/departments/community/skills/gamification-design/SKILL.md +3 -2
- package/departments/community/skills/growth-plan/SKILL.md +3 -2
- package/departments/community/skills/metrics-track/SKILL.md +3 -2
- package/departments/community/skills/moderation/SKILL.md +3 -2
- package/departments/community/skills/monetize-plan/SKILL.md +3 -2
- package/departments/community/skills/niche-setup/SKILL.md +3 -2
- package/departments/community/skills/onboarding-flow/SKILL.md +3 -2
- package/departments/community/skills/platform-select/SKILL.md +3 -2
- package/departments/content/SKILL.md +3 -2
- package/departments/content/skills/ai-workflow/SKILL.md +3 -2
- package/departments/content/skills/analytics/SKILL.md +3 -2
- package/departments/content/skills/calendar/SKILL.md +3 -2
- package/departments/content/skills/content-system/SKILL.md +3 -2
- package/departments/content/skills/monetization-plan/SKILL.md +3 -2
- package/departments/content/skills/newsletter-write/SKILL.md +3 -2
- package/departments/content/skills/platform-optimize/SKILL.md +3 -2
- package/departments/content/skills/repurpose-plan/SKILL.md +3 -2
- package/departments/content/skills/research-compile/SKILL.md +3 -2
- package/departments/content/skills/script-structure/SKILL.md +3 -2
- package/departments/content/skills/short-form/SKILL.md +3 -2
- package/departments/content/skills/thumbnail-package/SKILL.md +3 -2
- package/departments/content/skills/trend-hunt/SKILL.md +3 -2
- package/departments/content/skills/video-produce/SKILL.md +3 -2
- package/departments/content/skills/video-setup/SKILL.md +3 -2
- package/departments/content/skills/viral-design/SKILL.md +3 -2
- package/departments/content/skills/youtube-strategy/SKILL.md +3 -2
- package/departments/dev/SKILL.md +3 -2
- package/departments/dev/skills/ai-assisted-dev/SKILL.md +3 -2
- package/departments/dev/skills/animated-website/SKILL.md +7 -0
- package/departments/dev/skills/architecture-design/SKILL.md +3 -2
- package/departments/dev/skills/code-review/SKILL.md +3 -2
- package/departments/dev/skills/db-design/SKILL.md +3 -2
- package/departments/dev/skills/ddd-model/SKILL.md +3 -2
- package/departments/dev/skills/demo-gif/SKILL.md +3 -2
- package/departments/dev/skills/deploy/SKILL.md +3 -2
- package/departments/dev/skills/devops-pipeline/SKILL.md +3 -2
- package/departments/dev/skills/docs/SKILL.md +3 -2
- package/departments/dev/skills/mcp/SKILL.md +3 -2
- package/departments/dev/skills/performance-audit/SKILL.md +3 -2
- package/departments/dev/skills/refactor-plan/SKILL.md +3 -2
- package/departments/dev/skills/research/SKILL.md +3 -2
- package/departments/dev/skills/security-compliance/SKILL.md +3 -2
- package/departments/dev/skills/stack-check/SKILL.md +3 -2
- package/departments/ecom/SKILL.md +3 -2
- package/departments/ecom/skills/analytics/SKILL.md +3 -2
- package/departments/ecom/skills/browse-competitor/SKILL.md +3 -2
- package/departments/ecom/skills/cart-recovery/SKILL.md +3 -2
- package/departments/ecom/skills/cro-optimize/SKILL.md +3 -2
- package/departments/ecom/skills/customer-journey/SKILL.md +3 -2
- package/departments/ecom/skills/fulfillment-plan/SKILL.md +3 -2
- package/departments/ecom/skills/marketplace-manage/SKILL.md +3 -2
- package/departments/ecom/skills/pricing-strategy/SKILL.md +3 -2
- package/departments/ecom/skills/product-launch/SKILL.md +3 -2
- package/departments/ecom/skills/rfm-segment/SKILL.md +3 -2
- package/departments/ecom/skills/social-commerce/SKILL.md +3 -2
- package/departments/ecom/skills/store-audit/SKILL.md +3 -2
- package/departments/ecom/skills/subscription-model/SKILL.md +3 -2
- package/departments/finance/SKILL.md +3 -2
- package/departments/finance/skills/budget-plan/SKILL.md +3 -2
- package/departments/finance/skills/cashflow-forecast/SKILL.md +3 -2
- package/departments/finance/skills/ciso-advisor/SKILL.md +3 -2
- package/departments/finance/skills/financial-model/SKILL.md +3 -2
- package/departments/finance/skills/pitch-deck/SKILL.md +3 -2
- package/departments/finance/skills/scenario-analysis/SKILL.md +3 -2
- package/departments/finance/skills/unit-economics/SKILL.md +3 -2
- package/departments/finance/skills/valuation-model/SKILL.md +3 -2
- package/departments/kb/SKILL.md +3 -2
- package/departments/kb/skills/ai-research/SKILL.md +3 -2
- package/departments/kb/skills/competitive-intel/SKILL.md +3 -2
- package/departments/kb/skills/doc-extraction/SKILL.md +3 -2
- package/departments/kb/skills/doc-redaction/SKILL.md +3 -2
- package/departments/kb/skills/knowledge-ops/SKILL.md +3 -2
- package/departments/kb/skills/knowledge-review/SKILL.md +3 -2
- package/departments/kb/skills/learn-content/SKILL.md +3 -2
- package/departments/kb/skills/moc-create/SKILL.md +3 -2
- package/departments/kb/skills/persona-build/SKILL.md +3 -2
- package/departments/kb/skills/research-plan/SKILL.md +3 -2
- package/departments/kb/skills/search-kb/SKILL.md +3 -2
- package/departments/kb/skills/source-evaluate/SKILL.md +3 -2
- package/departments/kb/skills/taxonomy-manage/SKILL.md +3 -2
- package/departments/kb/skills/write-as-persona/SKILL.md +3 -2
- package/departments/landing/SKILL.md +3 -2
- package/departments/landing/skills/ab-test/SKILL.md +3 -2
- package/departments/landing/skills/affiliate-bridge/SKILL.md +3 -2
- package/departments/landing/skills/awareness-diagnose/SKILL.md +3 -2
- package/departments/landing/skills/email-sequence/SKILL.md +3 -2
- package/departments/landing/skills/funnel-metrics/SKILL.md +3 -2
- package/departments/landing/skills/headline-write/SKILL.md +3 -2
- package/departments/landing/skills/launch-sequence/SKILL.md +3 -2
- package/departments/landing/skills/offer-create/SKILL.md +3 -2
- package/departments/landing/skills/optimize-page/SKILL.md +3 -2
- package/departments/landing/skills/page-architect/SKILL.md +3 -2
- package/departments/landing/skills/persuasion-apply/SKILL.md +3 -2
- package/departments/landing/skills/webinar-funnel/SKILL.md +3 -2
- package/departments/leadership/SKILL.md +3 -2
- package/departments/leadership/skills/change-manage/SKILL.md +3 -2
- package/departments/leadership/skills/conflict-resolve/SKILL.md +3 -2
- package/departments/leadership/skills/culture-audit/SKILL.md +3 -2
- package/departments/leadership/skills/delegation-matrix/SKILL.md +3 -2
- package/departments/leadership/skills/disc-assess/SKILL.md +3 -2
- package/departments/leadership/skills/feedback-give/SKILL.md +3 -2
- package/departments/leadership/skills/hiring-plan/SKILL.md +3 -2
- package/departments/leadership/skills/performance-review/SKILL.md +3 -2
- package/departments/marketing/SKILL.md +3 -2
- package/departments/marketing/skills/ab-test/SKILL.md +3 -2
- package/departments/marketing/skills/analytics-report/SKILL.md +3 -2
- package/departments/marketing/skills/audience-segment/SKILL.md +3 -2
- package/departments/marketing/skills/calendar-plan/SKILL.md +3 -2
- package/departments/marketing/skills/competitor-analysis/SKILL.md +3 -2
- package/departments/marketing/skills/content-audit/SKILL.md +3 -2
- package/departments/marketing/skills/email-sequence/SKILL.md +3 -2
- package/departments/marketing/skills/growth-loop/SKILL.md +3 -2
- package/departments/marketing/skills/marketing-automation/SKILL.md +3 -2
- package/departments/marketing/skills/paid-campaign/SKILL.md +3 -2
- package/departments/marketing/skills/programmatic-seo/SKILL.md +3 -2
- package/departments/marketing/skills/seo-audit/SKILL.md +3 -2
- package/departments/marketing/skills/social-strategy/SKILL.md +3 -2
- package/departments/ops/SKILL.md +3 -2
- package/departments/ops/skills/bottleneck-find/SKILL.md +3 -2
- package/departments/ops/skills/dashboard-build/SKILL.md +3 -2
- package/departments/ops/skills/gdpr-compliance/SKILL.md +3 -2
- package/departments/ops/skills/github-ops/SKILL.md +3 -2
- package/departments/ops/skills/gtd-setup/SKILL.md +3 -2
- package/departments/ops/skills/integration-design/SKILL.md +3 -2
- package/departments/ops/skills/iso27001/SKILL.md +3 -2
- package/departments/ops/skills/lean-audit/SKILL.md +3 -2
- package/departments/ops/skills/metrics-dashboard/SKILL.md +3 -2
- package/departments/ops/skills/n8n-flow/SKILL.md +3 -2
- package/departments/ops/skills/quality-management/SKILL.md +3 -2
- package/departments/ops/skills/risk-management/SKILL.md +3 -2
- package/departments/ops/skills/soc2-compliance/SKILL.md +3 -2
- package/departments/ops/skills/sop-create/SKILL.md +3 -2
- package/departments/ops/skills/terminal-ops/SKILL.md +3 -2
- package/departments/ops/skills/workflow-automate/SKILL.md +3 -2
- package/departments/ops/skills/zapier-flow/SKILL.md +3 -2
- package/departments/org/SKILL.md +3 -2
- package/departments/org/skills/compensation-plan/SKILL.md +3 -2
- package/departments/org/skills/culture-define/SKILL.md +3 -2
- package/departments/org/skills/decision-framework/SKILL.md +3 -2
- package/departments/org/skills/hiring-plan/SKILL.md +3 -2
- package/departments/org/skills/meeting-optimize/SKILL.md +3 -2
- package/departments/org/skills/onboarding-design/SKILL.md +3 -2
- package/departments/org/skills/org-design/SKILL.md +3 -2
- package/departments/org/skills/remote-setup/SKILL.md +3 -2
- package/departments/org/skills/sop-process/SKILL.md +3 -2
- package/departments/org/skills/team-assess/SKILL.md +3 -2
- package/departments/pm/SKILL.md +3 -2
- package/departments/pm/skills/backlog-groom/SKILL.md +3 -2
- package/departments/pm/skills/discovery-plan/SKILL.md +3 -2
- package/departments/pm/skills/estimate-forecast/SKILL.md +3 -2
- package/departments/pm/skills/impact-map/SKILL.md +3 -2
- package/departments/pm/skills/kanban-setup/SKILL.md +3 -2
- package/departments/pm/skills/risk-register/SKILL.md +3 -2
- package/departments/pm/skills/roadmap-build/SKILL.md +3 -2
- package/departments/pm/skills/sprint-plan/SKILL.md +3 -2
- package/departments/pm/skills/stakeholder-map/SKILL.md +3 -2
- package/departments/pm/skills/standup-run/SKILL.md +3 -2
- package/departments/pm/skills/story-write/SKILL.md +3 -2
- package/departments/saas/SKILL.md +3 -2
- package/departments/saas/skills/benchmark-compare/SKILL.md +3 -2
- package/departments/saas/skills/churn-analysis/SKILL.md +3 -2
- package/departments/saas/skills/customer-success/SKILL.md +3 -2
- package/departments/saas/skills/growth-plan/SKILL.md +3 -2
- package/departments/saas/skills/gtm-strategy/SKILL.md +3 -2
- package/departments/saas/skills/launch-execute/SKILL.md +3 -2
- package/departments/saas/skills/metrics-dashboard/SKILL.md +3 -2
- package/departments/saas/skills/micro-saas-stack/SKILL.md +3 -2
- package/departments/saas/skills/mvp-build/SKILL.md +3 -2
- package/departments/saas/skills/niche-evaluate/SKILL.md +3 -2
- package/departments/saas/skills/onboarding-optimize/SKILL.md +3 -2
- package/departments/saas/skills/plg-setup/SKILL.md +3 -2
- package/departments/saas/skills/pricing-strategy/SKILL.md +3 -2
- package/departments/saas/skills/validate-idea/SKILL.md +3 -2
- package/departments/sales/SKILL.md +3 -2
- package/departments/sales/skills/challenger-sell/SKILL.md +3 -2
- package/departments/sales/skills/deal-qualify/SKILL.md +3 -2
- package/departments/sales/skills/discovery-call/SKILL.md +3 -2
- package/departments/sales/skills/forecast-revenue/SKILL.md +3 -2
- package/departments/sales/skills/negotiate-plan/SKILL.md +3 -2
- package/departments/sales/skills/objection-handle/SKILL.md +3 -2
- package/departments/sales/skills/pipeline-manage/SKILL.md +3 -2
- package/departments/sales/skills/pricing-negotiate/SKILL.md +3 -2
- package/departments/strategy/SKILL.md +3 -2
- package/departments/strategy/skills/blue-ocean/SKILL.md +3 -2
- package/departments/strategy/skills/bmc/SKILL.md +3 -2
- package/departments/strategy/skills/board-advisor/SKILL.md +3 -2
- package/departments/strategy/skills/cto-advisor/SKILL.md +3 -2
- package/departments/strategy/skills/extract-data/SKILL.md +3 -2
- package/departments/strategy/skills/five-forces/SKILL.md +3 -2
- package/departments/strategy/skills/growth-strategy/SKILL.md +3 -2
- package/departments/strategy/skills/moat-analysis/SKILL.md +3 -2
- package/departments/strategy/skills/position/SKILL.md +3 -2
- package/departments/strategy/skills/scenario-plan/SKILL.md +3 -2
- package/installer/config-seed.js +81 -25
- package/installer/graphify.js +340 -0
- package/installer/index.js +8 -1
- package/installer/keys.js +18 -3
- package/installer/update.js +8 -1
- package/knowledge/skills-manifest.json +1 -1
- package/mcps/registry.json +9 -9
- package/mcps/scripts/apply-mcps.sh +6 -2
- package/package.json +2 -1
- package/pyproject.toml +1 -1
- package/scripts/dashboard-api.py +336 -124
- package/scripts/guide_gen.py +139 -0
- package/scripts/migrate_skills_kb_first.py +3 -2
- package/scripts/synapse-bridge.py +9 -1
|
@@ -7,8 +7,9 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
<!-- arka:kb-first-prefix begin -->
|
|
10
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
11
|
-
> `[[wikilinks]]`
|
|
10
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
11
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
12
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
12
13
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
13
14
|
<!-- arka:kb-first-prefix end -->
|
|
14
15
|
|
|
@@ -12,8 +12,9 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
<!-- arka:kb-first-prefix begin -->
|
|
15
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
16
|
-
> `[[wikilinks]]`
|
|
15
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
16
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
17
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
17
18
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
18
19
|
<!-- arka:kb-first-prefix end -->
|
|
19
20
|
|
|
@@ -12,8 +12,9 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
<!-- arka:kb-first-prefix begin -->
|
|
15
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
16
|
-
> `[[wikilinks]]`
|
|
15
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
16
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
17
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
17
18
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
18
19
|
<!-- arka:kb-first-prefix end -->
|
|
19
20
|
|
|
@@ -11,8 +11,9 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
<!-- arka:kb-first-prefix begin -->
|
|
14
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
15
|
-
> `[[wikilinks]]`
|
|
14
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
15
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
16
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
16
17
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
17
18
|
<!-- arka:kb-first-prefix end -->
|
|
18
19
|
|
|
@@ -12,8 +12,9 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
<!-- arka:kb-first-prefix begin -->
|
|
15
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
16
|
-
> `[[wikilinks]]`
|
|
15
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
16
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
17
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
17
18
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
18
19
|
<!-- arka:kb-first-prefix end -->
|
|
19
20
|
|
|
@@ -12,8 +12,9 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
<!-- arka:kb-first-prefix begin -->
|
|
15
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
16
|
-
> `[[wikilinks]]`
|
|
15
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
16
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
17
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
17
18
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
18
19
|
<!-- arka:kb-first-prefix end -->
|
|
19
20
|
|
|
@@ -12,8 +12,9 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
<!-- arka:kb-first-prefix begin -->
|
|
15
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
16
|
-
> `[[wikilinks]]`
|
|
15
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
16
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
17
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
17
18
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
18
19
|
<!-- arka:kb-first-prefix end -->
|
|
19
20
|
|
|
@@ -12,8 +12,9 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
<!-- arka:kb-first-prefix begin -->
|
|
15
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
16
|
-
> `[[wikilinks]]`
|
|
15
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
16
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
17
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
17
18
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
18
19
|
<!-- arka:kb-first-prefix end -->
|
|
19
20
|
|
|
@@ -12,8 +12,9 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
<!-- arka:kb-first-prefix begin -->
|
|
15
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
16
|
-
> `[[wikilinks]]`
|
|
15
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
16
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
17
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
17
18
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
18
19
|
<!-- arka:kb-first-prefix end -->
|
|
19
20
|
|
|
@@ -8,8 +8,9 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
<!-- arka:kb-first-prefix begin -->
|
|
11
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
12
|
-
> `[[wikilinks]]`
|
|
11
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
12
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
13
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
13
14
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
14
15
|
<!-- arka:kb-first-prefix end -->
|
|
15
16
|
|
|
@@ -14,8 +14,9 @@ allowed-tools: [Read, Write, Edit, Agent, WebFetch, WebSearch]
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
<!-- arka:kb-first-prefix begin -->
|
|
17
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
18
|
-
> `[[wikilinks]]`
|
|
17
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
18
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
19
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
19
20
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
20
21
|
<!-- arka:kb-first-prefix end -->
|
|
21
22
|
|
|
@@ -13,8 +13,9 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
15
|
<!-- arka:kb-first-prefix begin -->
|
|
16
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
17
|
-
> `[[wikilinks]]`
|
|
16
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
17
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
18
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
18
19
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
19
20
|
<!-- arka:kb-first-prefix end -->
|
|
20
21
|
|
|
@@ -15,8 +15,9 @@ allowed-tools: [Read, Write, Edit, Agent, WebFetch, WebSearch]
|
|
|
15
15
|
---
|
|
16
16
|
|
|
17
17
|
<!-- arka:kb-first-prefix begin -->
|
|
18
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
19
|
-
> `[[wikilinks]]`
|
|
18
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
19
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
20
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
20
21
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
21
22
|
<!-- arka:kb-first-prefix end -->
|
|
22
23
|
|
|
@@ -14,8 +14,9 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
<!-- arka:kb-first-prefix begin -->
|
|
17
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
18
|
-
> `[[wikilinks]]`
|
|
17
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
18
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
19
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
19
20
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
20
21
|
<!-- arka:kb-first-prefix end -->
|
|
21
22
|
|
|
@@ -14,8 +14,9 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
<!-- arka:kb-first-prefix begin -->
|
|
17
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
18
|
-
> `[[wikilinks]]`
|
|
17
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
18
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
19
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
19
20
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
20
21
|
<!-- arka:kb-first-prefix end -->
|
|
21
22
|
|
|
@@ -14,8 +14,9 @@ allowed-tools: [Read, Write, Edit, Agent, WebFetch, WebSearch]
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
<!-- arka:kb-first-prefix begin -->
|
|
17
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
18
|
-
> `[[wikilinks]]`
|
|
17
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
18
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
19
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
19
20
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
20
21
|
<!-- arka:kb-first-prefix end -->
|
|
21
22
|
|
|
@@ -17,8 +17,9 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
19
|
<!-- arka:kb-first-prefix begin -->
|
|
20
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
21
|
-
> `[[wikilinks]]`
|
|
20
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
21
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
22
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
22
23
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
23
24
|
<!-- arka:kb-first-prefix end -->
|
|
24
25
|
|
|
@@ -13,8 +13,9 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
15
|
<!-- arka:kb-first-prefix begin -->
|
|
16
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
17
|
-
> `[[wikilinks]]`
|
|
16
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
17
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
18
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
18
19
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
19
20
|
<!-- arka:kb-first-prefix end -->
|
|
20
21
|
|
|
@@ -15,8 +15,9 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
|
15
15
|
---
|
|
16
16
|
|
|
17
17
|
<!-- arka:kb-first-prefix begin -->
|
|
18
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
19
|
-
> `[[wikilinks]]`
|
|
18
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
19
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
20
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
20
21
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
21
22
|
<!-- arka:kb-first-prefix end -->
|
|
22
23
|
|
|
@@ -14,8 +14,9 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
<!-- arka:kb-first-prefix begin -->
|
|
17
|
-
> **KB-first:** query `mcp__obsidian__search_notes` and
|
|
18
|
-
> `[[wikilinks]]`
|
|
17
|
+
> **KB-first:** query `mcp__obsidian__search_notes` (and
|
|
18
|
+
> `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
|
|
19
|
+
> or graph nodes — or declare the gap — BEFORE any external research.
|
|
19
20
|
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
20
21
|
<!-- arka:kb-first-prefix end -->
|
|
21
22
|
|
package/installer/config-seed.js
CHANGED
|
@@ -5,9 +5,12 @@
|
|
|
5
5
|
// user choice (true OR false) is always preserved.
|
|
6
6
|
//
|
|
7
7
|
// Seeded template keys (operator decisions):
|
|
8
|
-
// hooks.hardEnforcement
|
|
9
|
-
// hooks.kbFirst
|
|
10
|
-
// memory.sessionMemory
|
|
8
|
+
// hooks.hardEnforcement = true (PR19 v2.41.0)
|
|
9
|
+
// hooks.kbFirst = true (PR-3 v4.1 — KB-first ON out of the box)
|
|
10
|
+
// memory.sessionMemory = true (F1-A2 — session semantic memory ON)
|
|
11
|
+
// knowledge.graphify.enabled = true (graphify HTTP — "active once configured".
|
|
12
|
+
// Applies only when a url + token are also
|
|
13
|
+
// set; a fresh user with no endpoint is a no-op.)
|
|
11
14
|
//
|
|
12
15
|
// Returns a status object:
|
|
13
16
|
// { action: "created" | "added-key" | "noop"
|
|
@@ -28,37 +31,31 @@ const SEEDED_SECTIONS = {
|
|
|
28
31
|
memory: ["sessionMemory"],
|
|
29
32
|
};
|
|
30
33
|
|
|
34
|
+
// Nested boolean seeds: [section, subsection, key, value]. Same idempotent
|
|
35
|
+
// contract as SEEDED_SECTIONS (seed only when unset, preserve explicit
|
|
36
|
+
// user choice), but for keys nested two levels deep. graphify.enabled means
|
|
37
|
+
// "be active once a url + token exist" — it never activates on its own.
|
|
38
|
+
const NESTED_SEEDS = [
|
|
39
|
+
["knowledge", "graphify", "enabled", true],
|
|
40
|
+
];
|
|
41
|
+
|
|
31
42
|
function defaultConfig() {
|
|
32
43
|
const config = {};
|
|
33
44
|
for (const [section, keys] of Object.entries(SEEDED_SECTIONS)) {
|
|
34
45
|
config[section] = {};
|
|
35
46
|
for (const key of keys) config[section][key] = true;
|
|
36
47
|
}
|
|
48
|
+
for (const [section, sub, key, value] of NESTED_SEEDS) {
|
|
49
|
+
config[section] = config[section] || {};
|
|
50
|
+
config[section][sub] = config[section][sub] || {};
|
|
51
|
+
config[section][sub][key] = value;
|
|
52
|
+
}
|
|
37
53
|
return config;
|
|
38
54
|
}
|
|
39
55
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
if (!existsSync(cfgPath)) {
|
|
44
|
-
writeConfig(cfgPath, defaultConfig());
|
|
45
|
-
return { action: "created", path: cfgPath };
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
let config;
|
|
49
|
-
try {
|
|
50
|
-
config = JSON.parse(readFileSync(cfgPath, "utf-8"));
|
|
51
|
-
if (typeof config !== "object" || config === null) {
|
|
52
|
-
throw new Error("config root is not an object");
|
|
53
|
-
}
|
|
54
|
-
} catch {
|
|
55
|
-
// Corrupt JSON — keep the broken copy for recovery, write safe default.
|
|
56
|
-
const backup = `${cfgPath}.broken-${Date.now()}`;
|
|
57
|
-
try { copyFileSync(cfgPath, backup); } catch { /* best effort */ }
|
|
58
|
-
writeConfig(cfgPath, defaultConfig());
|
|
59
|
-
return { action: "rewrote-corrupt", path: cfgPath, backup };
|
|
60
|
-
}
|
|
61
|
-
|
|
56
|
+
// Seed the one-level keys in SEEDED_SECTIONS: write only when unset, never
|
|
57
|
+
// clobber an explicit true/false.
|
|
58
|
+
function applyFlatSeeds(config) {
|
|
62
59
|
let added = false;
|
|
63
60
|
let preservedFalse = false;
|
|
64
61
|
for (const [section, keys] of Object.entries(SEEDED_SECTIONS)) {
|
|
@@ -76,6 +73,65 @@ export function seedArkaosConfig({ home = homedir() } = {}) {
|
|
|
76
73
|
added = true;
|
|
77
74
|
}
|
|
78
75
|
}
|
|
76
|
+
return { added, preservedFalse };
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Seed the two-level keys in NESTED_SEEDS, same contract as the flat ones:
|
|
80
|
+
// write only when unset, never clobber an explicit true/false.
|
|
81
|
+
// Extracted so seedArkaosConfig stays under the 30-line Clean Code limit.
|
|
82
|
+
function applyNestedSeeds(config) {
|
|
83
|
+
let added = false;
|
|
84
|
+
let preservedFalse = false;
|
|
85
|
+
for (const [section, sub, key, value] of NESTED_SEEDS) {
|
|
86
|
+
const sec = config[section];
|
|
87
|
+
config[section] = sec && typeof sec === "object" ? sec : {};
|
|
88
|
+
const subObj = config[section][sub];
|
|
89
|
+
config[section][sub] = subObj && typeof subObj === "object" ? subObj : {};
|
|
90
|
+
const current = config[section][sub][key];
|
|
91
|
+
if (current === true || current === false) {
|
|
92
|
+
if (current === false) preservedFalse = true; // explicit user choice
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
config[section][sub][key] = value;
|
|
96
|
+
added = true;
|
|
97
|
+
}
|
|
98
|
+
return { added, preservedFalse };
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Load the config for seeding. Returns {config} when there is something to
|
|
102
|
+
// seed, or {done} when the file was absent or corrupt and has been written
|
|
103
|
+
// from the template — in which case the caller returns that status as-is.
|
|
104
|
+
function loadOrReset(cfgPath) {
|
|
105
|
+
if (!existsSync(cfgPath)) {
|
|
106
|
+
writeConfig(cfgPath, defaultConfig());
|
|
107
|
+
return { done: { action: "created", path: cfgPath } };
|
|
108
|
+
}
|
|
109
|
+
try {
|
|
110
|
+
const config = JSON.parse(readFileSync(cfgPath, "utf-8"));
|
|
111
|
+
if (typeof config !== "object" || config === null) {
|
|
112
|
+
throw new Error("config root is not an object");
|
|
113
|
+
}
|
|
114
|
+
return { config };
|
|
115
|
+
} catch {
|
|
116
|
+
// Corrupt JSON — keep the broken copy for recovery, write safe default.
|
|
117
|
+
const backup = `${cfgPath}.broken-${Date.now()}`;
|
|
118
|
+
try { copyFileSync(cfgPath, backup); } catch { /* best effort */ }
|
|
119
|
+
writeConfig(cfgPath, defaultConfig());
|
|
120
|
+
return { done: { action: "rewrote-corrupt", path: cfgPath, backup } };
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export function seedArkaosConfig({ home = homedir() } = {}) {
|
|
125
|
+
const cfgPath = join(home, ".arkaos", "config.json");
|
|
126
|
+
|
|
127
|
+
const loaded = loadOrReset(cfgPath);
|
|
128
|
+
if (loaded.done) return loaded.done;
|
|
129
|
+
const config = loaded.config;
|
|
130
|
+
|
|
131
|
+
const flat = applyFlatSeeds(config);
|
|
132
|
+
const nested = applyNestedSeeds(config);
|
|
133
|
+
const added = flat.added || nested.added;
|
|
134
|
+
const preservedFalse = flat.preservedFalse || nested.preservedFalse;
|
|
79
135
|
|
|
80
136
|
if (added) {
|
|
81
137
|
writeConfig(cfgPath, config);
|