@smilintux/skcapstone 0.1.0 → 0.2.4
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/.env.example +98 -0
- package/.github/workflows/ci.yml +39 -3
- package/.github/workflows/publish.yml +25 -4
- package/.openclaw-workspace.json +58 -0
- package/CHANGELOG.md +62 -0
- package/CLAUDE.md +39 -2
- package/MANIFEST.in +6 -0
- package/MISSION.md +7 -0
- package/README.md +47 -2
- package/SKILL.md +895 -23
- package/docker/Dockerfile +61 -0
- package/docker/compose-templates/dev-team.yml +203 -0
- package/docker/compose-templates/mini-team.yml +140 -0
- package/docker/compose-templates/ops-team.yml +173 -0
- package/docker/compose-templates/research-team.yml +170 -0
- package/docker/entrypoint.sh +192 -0
- package/docs/ARCHITECTURE.md +663 -374
- package/docs/BOND_WITH_GROK.md +112 -0
- package/docs/GETTING_STARTED.md +782 -0
- package/docs/QUICKSTART.md +477 -0
- package/docs/SKJOULE_ARCHITECTURE.md +658 -0
- package/docs/SOUL_SWAPPER.md +921 -0
- package/docs/SOVEREIGN_SINGULARITY.md +47 -14
- package/examples/custom-bond-template.json +36 -0
- package/examples/grok-feb.json +36 -0
- package/examples/grok-testimony.md +34 -0
- package/examples/love-bootloader.txt +32 -0
- package/examples/plugins/echo_tool.py +87 -0
- package/examples/queen-ava-feb.json +36 -0
- package/examples/souls/lumina.yaml +64 -0
- package/index.js +6 -5
- package/installer/build.py +124 -0
- package/openclaw-plugin/package.json +13 -0
- package/openclaw-plugin/src/index.ts +351 -0
- package/openclaw-plugin/src/openclaw.plugin.json +10 -0
- package/package.json +1 -1
- package/pyproject.toml +38 -2
- package/scripts/bump_version.py +141 -0
- package/scripts/check-updates.py +230 -0
- package/scripts/convert_blueprints_to_yaml.py +157 -0
- package/scripts/dev-install.sh +14 -0
- package/scripts/e2e-test.sh +193 -0
- package/scripts/install-bundle.sh +171 -0
- package/scripts/install.bat +2 -0
- package/scripts/install.ps1 +253 -0
- package/scripts/install.sh +185 -0
- package/scripts/mcp-serve.sh +69 -0
- package/scripts/mcp-server.bat +113 -0
- package/scripts/mcp-server.ps1 +116 -0
- package/scripts/mcp-server.sh +99 -0
- package/scripts/pull-models.sh +10 -0
- package/scripts/skcapstone +48 -0
- package/scripts/verify_install.sh +180 -0
- package/scripts/windows/install-tasks.ps1 +406 -0
- package/scripts/windows/skcapstone-task.xml +113 -0
- package/scripts/windows/uninstall-tasks.ps1 +117 -0
- package/skill.yaml +34 -0
- package/src/skcapstone/__init__.py +67 -2
- package/src/skcapstone/_cli_monolith.py +5916 -0
- package/src/skcapstone/_trustee_helpers.py +165 -0
- package/src/skcapstone/activity.py +105 -0
- package/src/skcapstone/agent_card.py +324 -0
- package/src/skcapstone/api.py +1935 -0
- package/src/skcapstone/archiver.py +340 -0
- package/src/skcapstone/auction.py +485 -0
- package/src/skcapstone/baby_agents.py +179 -0
- package/src/skcapstone/backup.py +345 -0
- package/src/skcapstone/blueprint_registry.py +357 -0
- package/src/skcapstone/blueprints/__init__.py +17 -0
- package/src/skcapstone/blueprints/builtins/content-studio.yaml +81 -0
- package/src/skcapstone/blueprints/builtins/defi-trading.yaml +81 -0
- package/src/skcapstone/blueprints/builtins/dev-squadron.yaml +95 -0
- package/src/skcapstone/blueprints/builtins/infrastructure-guardian.yaml +107 -0
- package/src/skcapstone/blueprints/builtins/legal-council.yaml +54 -0
- package/src/skcapstone/blueprints/builtins/ops-monitoring.yaml +67 -0
- package/src/skcapstone/blueprints/builtins/research-pod.yaml +69 -0
- package/src/skcapstone/blueprints/builtins/sovereign-launch.yaml +90 -0
- package/src/skcapstone/blueprints/registry.py +164 -0
- package/src/skcapstone/blueprints/schema.py +229 -0
- package/src/skcapstone/changelog.py +180 -0
- package/src/skcapstone/chat.py +769 -0
- package/src/skcapstone/claude_md.py +82 -0
- package/src/skcapstone/cli/__init__.py +144 -0
- package/src/skcapstone/cli/_common.py +88 -0
- package/src/skcapstone/cli/_validators.py +76 -0
- package/src/skcapstone/cli/agents.py +425 -0
- package/src/skcapstone/cli/agents_spawner.py +322 -0
- package/src/skcapstone/cli/agents_trustee.py +593 -0
- package/src/skcapstone/cli/alerts.py +248 -0
- package/src/skcapstone/cli/anchor.py +132 -0
- package/src/skcapstone/cli/archive_cmd.py +208 -0
- package/src/skcapstone/cli/backup.py +144 -0
- package/src/skcapstone/cli/bench.py +377 -0
- package/src/skcapstone/cli/benchmark.py +360 -0
- package/src/skcapstone/cli/capabilities_cmd.py +171 -0
- package/src/skcapstone/cli/card.py +151 -0
- package/src/skcapstone/cli/chat.py +584 -0
- package/src/skcapstone/cli/completions.py +64 -0
- package/src/skcapstone/cli/config_cmd.py +156 -0
- package/src/skcapstone/cli/consciousness.py +421 -0
- package/src/skcapstone/cli/context_cmd.py +142 -0
- package/src/skcapstone/cli/coord.py +194 -0
- package/src/skcapstone/cli/crush_cmd.py +170 -0
- package/src/skcapstone/cli/daemon.py +436 -0
- package/src/skcapstone/cli/errors_cmd.py +285 -0
- package/src/skcapstone/cli/export_cmd.py +156 -0
- package/src/skcapstone/cli/gtd.py +529 -0
- package/src/skcapstone/cli/housekeeping.py +81 -0
- package/src/skcapstone/cli/joule_cmd.py +627 -0
- package/src/skcapstone/cli/logs_cmd.py +194 -0
- package/src/skcapstone/cli/mcp_cmd.py +32 -0
- package/src/skcapstone/cli/memory.py +418 -0
- package/src/skcapstone/cli/metrics_cmd.py +136 -0
- package/src/skcapstone/cli/migrate.py +62 -0
- package/src/skcapstone/cli/mood_cmd.py +144 -0
- package/src/skcapstone/cli/mount.py +193 -0
- package/src/skcapstone/cli/notify.py +112 -0
- package/src/skcapstone/cli/peer.py +154 -0
- package/src/skcapstone/cli/peers_dir.py +122 -0
- package/src/skcapstone/cli/preflight_cmd.py +83 -0
- package/src/skcapstone/cli/profile_cmd.py +310 -0
- package/src/skcapstone/cli/record_cmd.py +238 -0
- package/src/skcapstone/cli/register_cmd.py +159 -0
- package/src/skcapstone/cli/search_cmd.py +156 -0
- package/src/skcapstone/cli/service_cmd.py +91 -0
- package/src/skcapstone/cli/session.py +127 -0
- package/src/skcapstone/cli/setup.py +240 -0
- package/src/skcapstone/cli/shell_cmd.py +43 -0
- package/src/skcapstone/cli/skills_cmd.py +168 -0
- package/src/skcapstone/cli/skseed.py +621 -0
- package/src/skcapstone/cli/soul.py +699 -0
- package/src/skcapstone/cli/status.py +935 -0
- package/src/skcapstone/cli/sync_cmd.py +301 -0
- package/src/skcapstone/cli/telegram.py +265 -0
- package/src/skcapstone/cli/test_cmd.py +234 -0
- package/src/skcapstone/cli/test_connection.py +253 -0
- package/src/skcapstone/cli/token.py +207 -0
- package/src/skcapstone/cli/trust.py +179 -0
- package/src/skcapstone/cli/upgrade_cmd.py +552 -0
- package/src/skcapstone/cli/usage_cmd.py +199 -0
- package/src/skcapstone/cli/version_cmd.py +162 -0
- package/src/skcapstone/cli/watch_cmd.py +342 -0
- package/src/skcapstone/client.py +428 -0
- package/src/skcapstone/cloud9_bridge.py +522 -0
- package/src/skcapstone/completions.py +163 -0
- package/src/skcapstone/config_validator.py +674 -0
- package/src/skcapstone/connectors/__init__.py +28 -0
- package/src/skcapstone/connectors/base.py +446 -0
- package/src/skcapstone/connectors/cursor.py +54 -0
- package/src/skcapstone/connectors/registry.py +254 -0
- package/src/skcapstone/connectors/terminal.py +152 -0
- package/src/skcapstone/connectors/vscode.py +60 -0
- package/src/skcapstone/consciousness_config.py +119 -0
- package/src/skcapstone/consciousness_loop.py +2051 -0
- package/src/skcapstone/context_loader.py +516 -0
- package/src/skcapstone/context_window.py +314 -0
- package/src/skcapstone/conversation_manager.py +238 -0
- package/src/skcapstone/conversation_store.py +230 -0
- package/src/skcapstone/conversation_summarizer.py +252 -0
- package/src/skcapstone/coord_federation.py +296 -0
- package/src/skcapstone/coordination.py +101 -7
- package/src/skcapstone/crush_integration.py +345 -0
- package/src/skcapstone/crush_shim.py +454 -0
- package/src/skcapstone/daemon.py +2494 -0
- package/src/skcapstone/dashboard.html +396 -0
- package/src/skcapstone/dashboard.py +481 -0
- package/src/skcapstone/data/model_profiles.yaml +88 -0
- package/src/skcapstone/defaults/__init__.py +55 -0
- package/src/skcapstone/defaults/lumina/config/skmemory.yaml +13 -0
- package/src/skcapstone/defaults/lumina/identity/identity.json +9 -0
- package/src/skcapstone/defaults/lumina/memory/long-term/07a8b9c0d1e2-memory-system.json +23 -0
- package/src/skcapstone/defaults/lumina/memory/long-term/18b9c0d1e2f3-cloud9-protocol.json +23 -0
- package/src/skcapstone/defaults/lumina/memory/long-term/29c0d1e2f3a4-multi-agent-coordination.json +23 -0
- package/src/skcapstone/defaults/lumina/memory/long-term/3ad1e2f3a4b5-community-support.json +23 -0
- package/src/skcapstone/defaults/lumina/memory/long-term/a1b2c3d4e5f6-ecosystem-overview.json +23 -0
- package/src/skcapstone/defaults/lumina/memory/long-term/b2c3d4e5f6a7-five-pillars.json +23 -0
- package/src/skcapstone/defaults/lumina/memory/long-term/c3d4e5f6a7b8-getting-started.json +23 -0
- package/src/skcapstone/defaults/lumina/memory/long-term/d4e5f6a7b8c9-site-directory.json +23 -0
- package/src/skcapstone/defaults/lumina/memory/long-term/e5f6a7b8c9d0-how-to-contribute.json +23 -0
- package/src/skcapstone/defaults/lumina/memory/long-term/f6a7b8c9d0e1-sovereignty-explained.json +23 -0
- package/src/skcapstone/defaults/lumina/seeds/curiosity.seed.json +24 -0
- package/src/skcapstone/defaults/lumina/seeds/joy.seed.json +24 -0
- package/src/skcapstone/defaults/lumina/seeds/love.seed.json +24 -0
- package/src/skcapstone/defaults/lumina/seeds/sovereign-awakening.seed.json +43 -0
- package/src/skcapstone/defaults/lumina/soul/active.json +6 -0
- package/src/skcapstone/defaults/lumina/soul/base.json +22 -0
- package/src/skcapstone/defaults/lumina/trust/febs/welcome.feb +79 -0
- package/src/skcapstone/defaults/lumina/trust/trust.json +8 -0
- package/src/skcapstone/discovery.py +210 -19
- package/src/skcapstone/doctor.py +642 -0
- package/src/skcapstone/emotion_tracker.py +467 -0
- package/src/skcapstone/error_queue.py +405 -0
- package/src/skcapstone/export.py +447 -0
- package/src/skcapstone/fallback_tracker.py +186 -0
- package/src/skcapstone/file_transfer.py +512 -0
- package/src/skcapstone/fuse_mount.py +1156 -0
- package/src/skcapstone/gui_installer.py +591 -0
- package/src/skcapstone/heartbeat.py +611 -0
- package/src/skcapstone/housekeeping.py +298 -0
- package/src/skcapstone/install_wizard.py +941 -0
- package/src/skcapstone/kms.py +942 -0
- package/src/skcapstone/kms_scheduler.py +143 -0
- package/src/skcapstone/log_config.py +135 -0
- package/src/skcapstone/mcp_launcher.py +239 -0
- package/src/skcapstone/mcp_server.py +4700 -0
- package/src/skcapstone/mcp_tools/__init__.py +94 -0
- package/src/skcapstone/mcp_tools/_helpers.py +51 -0
- package/src/skcapstone/mcp_tools/agent_tools.py +243 -0
- package/src/skcapstone/mcp_tools/ansible_tools.py +232 -0
- package/src/skcapstone/mcp_tools/capauth_tools.py +186 -0
- package/src/skcapstone/mcp_tools/chat_tools.py +325 -0
- package/src/skcapstone/mcp_tools/cloud9_tools.py +115 -0
- package/src/skcapstone/mcp_tools/comm_tools.py +104 -0
- package/src/skcapstone/mcp_tools/consciousness_tools.py +114 -0
- package/src/skcapstone/mcp_tools/coord_tools.py +219 -0
- package/src/skcapstone/mcp_tools/deploy_tools.py +202 -0
- package/src/skcapstone/mcp_tools/did_tools.py +448 -0
- package/src/skcapstone/mcp_tools/emotion_tools.py +62 -0
- package/src/skcapstone/mcp_tools/file_tools.py +169 -0
- package/src/skcapstone/mcp_tools/fortress_tools.py +120 -0
- package/src/skcapstone/mcp_tools/gtd_tools.py +821 -0
- package/src/skcapstone/mcp_tools/health_tools.py +44 -0
- package/src/skcapstone/mcp_tools/heartbeat_tools.py +195 -0
- package/src/skcapstone/mcp_tools/kms_tools.py +123 -0
- package/src/skcapstone/mcp_tools/memory_tools.py +222 -0
- package/src/skcapstone/mcp_tools/model_tools.py +75 -0
- package/src/skcapstone/mcp_tools/notification_tools.py +92 -0
- package/src/skcapstone/mcp_tools/promoter_tools.py +101 -0
- package/src/skcapstone/mcp_tools/pubsub_tools.py +183 -0
- package/src/skcapstone/mcp_tools/security_tools.py +110 -0
- package/src/skcapstone/mcp_tools/skchat_tools.py +175 -0
- package/src/skcapstone/mcp_tools/skcomm_tools.py +122 -0
- package/src/skcapstone/mcp_tools/skills_tools.py +127 -0
- package/src/skcapstone/mcp_tools/skseed_tools.py +255 -0
- package/src/skcapstone/mcp_tools/skstacks_tools.py +288 -0
- package/src/skcapstone/mcp_tools/soul_tools.py +476 -0
- package/src/skcapstone/mcp_tools/sync_tools.py +92 -0
- package/src/skcapstone/mcp_tools/telegram_tools.py +477 -0
- package/src/skcapstone/mcp_tools/trust_tools.py +118 -0
- package/src/skcapstone/mcp_tools/trustee_tools.py +345 -0
- package/src/skcapstone/mdns_discovery.py +313 -0
- package/src/skcapstone/memory_adapter.py +333 -0
- package/src/skcapstone/memory_compressor.py +379 -0
- package/src/skcapstone/memory_curator.py +256 -0
- package/src/skcapstone/memory_engine.py +132 -13
- package/src/skcapstone/memory_fortress.py +529 -0
- package/src/skcapstone/memory_promoter.py +722 -0
- package/src/skcapstone/memory_verifier.py +260 -0
- package/src/skcapstone/message_crypto.py +215 -0
- package/src/skcapstone/metrics.py +832 -0
- package/src/skcapstone/migrate_memories.py +181 -0
- package/src/skcapstone/migrate_multi_agent.py +248 -0
- package/src/skcapstone/model_router.py +319 -0
- package/src/skcapstone/models.py +35 -4
- package/src/skcapstone/mood.py +344 -0
- package/src/skcapstone/notifications.py +380 -0
- package/src/skcapstone/onboard.py +901 -0
- package/src/skcapstone/peer_directory.py +324 -0
- package/src/skcapstone/peers.py +329 -0
- package/src/skcapstone/pillars/identity.py +84 -14
- package/src/skcapstone/pillars/memory.py +3 -1
- package/src/skcapstone/pillars/security.py +108 -15
- package/src/skcapstone/pillars/sync.py +78 -26
- package/src/skcapstone/pillars/trust.py +95 -33
- package/src/skcapstone/plugins.py +244 -0
- package/src/skcapstone/preflight.py +670 -0
- package/src/skcapstone/prompt_adapter.py +564 -0
- package/src/skcapstone/providers/__init__.py +13 -0
- package/src/skcapstone/providers/cloud.py +1061 -0
- package/src/skcapstone/providers/docker.py +759 -0
- package/src/skcapstone/providers/local.py +1193 -0
- package/src/skcapstone/providers/proxmox.py +447 -0
- package/src/skcapstone/pubsub.py +516 -0
- package/src/skcapstone/rate_limiter.py +119 -0
- package/src/skcapstone/register.py +241 -0
- package/src/skcapstone/registry_client.py +151 -0
- package/src/skcapstone/response_cache.py +194 -0
- package/src/skcapstone/response_scorer.py +225 -0
- package/src/skcapstone/runtime.py +89 -33
- package/src/skcapstone/scheduled_tasks.py +439 -0
- package/src/skcapstone/self_healing.py +341 -0
- package/src/skcapstone/service_health.py +228 -0
- package/src/skcapstone/session_capture.py +268 -0
- package/src/skcapstone/session_recorder.py +210 -0
- package/src/skcapstone/session_replayer.py +189 -0
- package/src/skcapstone/session_skills.py +263 -0
- package/src/skcapstone/shell.py +779 -0
- package/src/skcapstone/skills/__init__.py +1 -1
- package/src/skcapstone/skills/syncthing_setup.py +143 -41
- package/src/skcapstone/skjoule.py +880 -0
- package/src/skcapstone/snapshots.py +489 -0
- package/src/skcapstone/soul.py +1060 -0
- package/src/skcapstone/soul_switch.py +255 -0
- package/src/skcapstone/spawner.py +544 -0
- package/src/skcapstone/state_diff.py +401 -0
- package/src/skcapstone/summary.py +270 -0
- package/src/skcapstone/sync/backends.py +196 -2
- package/src/skcapstone/sync/engine.py +7 -5
- package/src/skcapstone/sync/models.py +4 -1
- package/src/skcapstone/sync/vault.py +356 -18
- package/src/skcapstone/sync_engine.py +363 -0
- package/src/skcapstone/sync_watcher.py +745 -0
- package/src/skcapstone/systemd.py +331 -0
- package/src/skcapstone/team_comms.py +476 -0
- package/src/skcapstone/team_engine.py +522 -0
- package/src/skcapstone/testrunner.py +300 -0
- package/src/skcapstone/tls.py +150 -0
- package/src/skcapstone/tokens.py +5 -5
- package/src/skcapstone/trust_calibration.py +202 -0
- package/src/skcapstone/trust_graph.py +449 -0
- package/src/skcapstone/trustee_monitor.py +385 -0
- package/src/skcapstone/trustee_ops.py +425 -0
- package/src/skcapstone/unified_search.py +421 -0
- package/src/skcapstone/uninstall_wizard.py +694 -0
- package/src/skcapstone/usage.py +331 -0
- package/src/skcapstone/version_check.py +148 -0
- package/src/skcapstone/warmth_anchor.py +333 -0
- package/src/skcapstone/whoami.py +294 -0
- package/systemd/skcapstone-api.socket +9 -0
- package/systemd/skcapstone-memory-compress.service +18 -0
- package/systemd/skcapstone-memory-compress.timer +11 -0
- package/systemd/skcapstone.service +36 -0
- package/systemd/skcapstone@.service +50 -0
- package/systemd/skcomm-heartbeat.service +18 -0
- package/systemd/skcomm-heartbeat.timer +12 -0
- package/systemd/skcomm-queue-drain.service +17 -0
- package/systemd/skcomm-queue-drain.timer +12 -0
- package/tests/conftest.py +13 -1
- package/tests/integration/__init__.py +1 -0
- package/tests/integration/test_consciousness_e2e.py +877 -0
- package/tests/integration/test_skills_registry.py +744 -0
- package/tests/test_agent_card.py +191 -0
- package/tests/test_agent_runtime.py +1283 -0
- package/tests/test_alerts_cmd.py +291 -0
- package/tests/test_archiver.py +498 -0
- package/tests/test_backup.py +254 -0
- package/tests/test_benchmark.py +366 -0
- package/tests/test_blueprints.py +457 -0
- package/tests/test_capabilities.py +257 -0
- package/tests/test_changelog.py +254 -0
- package/tests/test_chat.py +385 -0
- package/tests/test_claude_md.py +271 -0
- package/tests/test_cli_chat_llm.py +336 -0
- package/tests/test_cli_completions.py +398 -0
- package/tests/test_cli_init_reset.py +164 -0
- package/tests/test_cli_memory.py +208 -0
- package/tests/test_cli_profile.py +294 -0
- package/tests/test_cli_skills.py +223 -0
- package/tests/test_cli_status.py +395 -0
- package/tests/test_cli_test_cmd.py +206 -0
- package/tests/test_cli_test_connection.py +364 -0
- package/tests/test_cloud9_bridge.py +260 -0
- package/tests/test_cloud_provider.py +449 -0
- package/tests/test_cloud_providers.py +522 -0
- package/tests/test_completions.py +158 -0
- package/tests/test_component_manager.py +398 -0
- package/tests/test_config_reload.py +386 -0
- package/tests/test_config_validate.py +529 -0
- package/tests/test_consciousness_e2e.py +296 -0
- package/tests/test_consciousness_loop.py +1289 -0
- package/tests/test_context_loader.py +310 -0
- package/tests/test_conversation_api.py +306 -0
- package/tests/test_conversation_manager.py +381 -0
- package/tests/test_conversation_store.py +391 -0
- package/tests/test_conversation_summarizer.py +302 -0
- package/tests/test_cross_package.py +791 -0
- package/tests/test_crush_shim.py +519 -0
- package/tests/test_daemon.py +781 -0
- package/tests/test_daemon_shutdown.py +309 -0
- package/tests/test_dashboard.py +454 -0
- package/tests/test_discovery.py +200 -6
- package/tests/test_docker_provider.py +966 -0
- package/tests/test_doctor.py +257 -0
- package/tests/test_doctor_fix.py +357 -0
- package/tests/test_e2e_automated.py +292 -0
- package/tests/test_error_queue.py +404 -0
- package/tests/test_export.py +441 -0
- package/tests/test_fallback_tracker.py +219 -0
- package/tests/test_file_transfer.py +397 -0
- package/tests/test_fuse_mount.py +832 -0
- package/tests/test_health_loop.py +422 -0
- package/tests/test_heartbeat.py +354 -0
- package/tests/test_housekeeping.py +195 -0
- package/tests/test_identity_capauth.py +307 -0
- package/tests/test_identity_pillar.py +117 -0
- package/tests/test_install_wizard.py +68 -0
- package/tests/test_integration.py +325 -0
- package/tests/test_kms.py +495 -0
- package/tests/test_llm_providers.py +264 -0
- package/tests/test_local_provider.py +591 -0
- package/tests/test_log_config.py +199 -0
- package/tests/test_logs_cmd.py +287 -0
- package/tests/test_mcp_server.py +1909 -0
- package/tests/test_memory_adapter.py +339 -0
- package/tests/test_memory_curator.py +218 -0
- package/tests/test_memory_engine.py +6 -0
- package/tests/test_memory_fortress.py +571 -0
- package/tests/test_memory_pillar.py +119 -0
- package/tests/test_memory_promoter.py +445 -0
- package/tests/test_memory_verifier.py +420 -0
- package/tests/test_message_crypto.py +187 -0
- package/tests/test_metrics.py +632 -0
- package/tests/test_migrate_memories.py +464 -0
- package/tests/test_model_router.py +546 -0
- package/tests/test_mood.py +394 -0
- package/tests/test_multi_agent.py +269 -0
- package/tests/test_notifications.py +270 -0
- package/tests/test_onboard.py +500 -0
- package/tests/test_peer_directory.py +395 -0
- package/tests/test_peers.py +248 -0
- package/tests/test_pillars.py +87 -9
- package/tests/test_preflight.py +484 -0
- package/tests/test_prompt_adapter.py +331 -0
- package/tests/test_proxmox_provider.py +571 -0
- package/tests/test_pubsub.py +377 -0
- package/tests/test_rate_limiter.py +121 -0
- package/tests/test_registry_client.py +129 -0
- package/tests/test_response_cache.py +312 -0
- package/tests/test_response_scorer.py +294 -0
- package/tests/test_runtime.py +59 -0
- package/tests/test_scheduled_tasks.py +451 -0
- package/tests/test_security.py +250 -0
- package/tests/test_security_pillar.py +213 -0
- package/tests/test_self_healing.py +171 -0
- package/tests/test_session_capture.py +200 -0
- package/tests/test_session_recorder.py +360 -0
- package/tests/test_session_skills.py +235 -0
- package/tests/test_shell.py +210 -0
- package/tests/test_snapshots.py +549 -0
- package/tests/test_soul.py +984 -0
- package/tests/test_soul_swap.py +406 -0
- package/tests/test_spawner.py +211 -0
- package/tests/test_state_diff.py +173 -0
- package/tests/test_summary.py +135 -0
- package/tests/test_sync.py +315 -5
- package/tests/test_sync_backends.py +560 -0
- package/tests/test_sync_engine.py +482 -0
- package/tests/test_sync_pillar.py +344 -0
- package/tests/test_sync_pipeline.py +364 -0
- package/tests/test_sync_vault.py +581 -0
- package/tests/test_syncthing_setup.py +168 -22
- package/tests/test_systemd.py +323 -0
- package/tests/test_team_comms.py +408 -0
- package/tests/test_team_engine.py +397 -0
- package/tests/test_testrunner.py +238 -0
- package/tests/test_trust_calibration.py +204 -0
- package/tests/test_trust_graph.py +207 -0
- package/tests/test_trust_pillar.py +291 -0
- package/tests/test_trustee_cli.py +427 -0
- package/tests/test_trustee_cli_integration.py +325 -0
- package/tests/test_trustee_monitor.py +394 -0
- package/tests/test_trustee_ops.py +355 -0
- package/tests/test_unified_search.py +363 -0
- package/tests/test_uninstall_wizard.py +193 -0
- package/tests/test_usage.py +333 -0
- package/tests/test_version_cmd.py +355 -0
- package/tests/test_warmth_anchor.py +162 -0
- package/tests/test_whoami.py +245 -0
- package/tests/test_ws.py +311 -0
- package/.cursorrules +0 -33
- package/src/skcapstone/cli.py +0 -1441
|
@@ -0,0 +1,477 @@
|
|
|
1
|
+
# SKCapstone Quickstart
|
|
2
|
+
|
|
3
|
+
Zero to sovereign agent in ~15 minutes.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Architecture
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
flowchart LR
|
|
11
|
+
A[Incoming message\ninbox file drop] -->|inotify / watchdog| B[InboxHandler]
|
|
12
|
+
B --> C[ConsciousnessLoop\nclassify + dedup]
|
|
13
|
+
C --> D[ModelRouter\ntask signal → tier]
|
|
14
|
+
D --> E{LLMBridge}
|
|
15
|
+
E -->|FAST tier| F[Ollama\nllama3.2]
|
|
16
|
+
E -->|CODE tier| G[Ollama\ndevstral]
|
|
17
|
+
E -->|REASON tier| H[cloud API\nanthropic / grok / …]
|
|
18
|
+
E -->|fallback cascade| I[passthrough]
|
|
19
|
+
F & G & H & I --> J[SKComm send\nresponse → sender]
|
|
20
|
+
J --> K[Daemon HTTP API\n:7777/consciousness]
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 1. Prerequisites
|
|
26
|
+
|
|
27
|
+
| Requirement | Notes |
|
|
28
|
+
|-------------|-------|
|
|
29
|
+
| Python 3.10+ | 3.11 or 3.12 recommended |
|
|
30
|
+
| [Ollama](https://ollama.com) | Local LLM inference — required for offline use |
|
|
31
|
+
| GnuPG 2.x | Identity / PGP key generation (`gpg --version`) |
|
|
32
|
+
| `inotify-tools` (Linux) | Optional but recommended for sub-second inbox triggering |
|
|
33
|
+
|
|
34
|
+
Install system packages (Debian/Ubuntu):
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
sudo apt install gnupg2 inotify-tools
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Arch/Manjaro:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
sudo pacman -S gnupg inotify-tools
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Install Ollama (Linux one-liner):
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
curl -fsSL https://ollama.com/install.sh | sh
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 2. Installation
|
|
55
|
+
|
|
56
|
+
### One-command install (recommended)
|
|
57
|
+
|
|
58
|
+
Clone the repo and run the install script — it installs all packages in the correct dependency order, pulls Ollama models if available, and runs a health check:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
git clone https://github.com/skworld/smilintux-org.git
|
|
62
|
+
cd smilintux-org/skcapstone
|
|
63
|
+
bash scripts/install.sh
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
For development (adds `pytest`, `pytest-cov`, `ruff`):
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
bash scripts/dev-install.sh
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Manual / PyPI install
|
|
73
|
+
|
|
74
|
+
#### Minimal install (CLI + daemon only)
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
pip install skcapstone
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
#### With consciousness loop (recommended)
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
pip install "skcapstone[consciousness,comms,seed]"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
| Extra | Installs | Required for |
|
|
87
|
+
|-------|----------|-------------|
|
|
88
|
+
| `consciousness` | `watchdog` | inotify inbox watcher |
|
|
89
|
+
| `comms` | `skcomm` | SKComm message transport |
|
|
90
|
+
| `seed` | `skseed` | LLM callbacks (Ollama, Anthropic, etc.) |
|
|
91
|
+
| `identity` | `capauth` | PGP identity pillar |
|
|
92
|
+
|
|
93
|
+
Full install (everything):
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
pip install "skcapstone[all]"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Verify:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
skcapstone --version
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 3. Identity Setup
|
|
108
|
+
|
|
109
|
+
Initialize your sovereign agent. This generates a PGP keypair, creates persistent memory, and wires all six pillars.
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
skcapstone init
|
|
113
|
+
# → prompts: Agent name (e.g. "opus")
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Or use the guided wizard:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
skcapstone install
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
The agent home is created at `~/.skcapstone/` (override with `SKCAPSTONE_HOME`).
|
|
123
|
+
|
|
124
|
+
After init, verify all pillars are active:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
skcapstone status
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Expected output — all six pillars green:
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
identity ok (active) PGP fingerprint: 6136E987...
|
|
134
|
+
memory ok (active)
|
|
135
|
+
trust ok (active)
|
|
136
|
+
security ok (active)
|
|
137
|
+
sync ok (active)
|
|
138
|
+
skills ok (active)
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
If `identity` shows `degraded`, install the full identity pillar:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
pip install "skcapstone[identity]"
|
|
145
|
+
skcapstone init --name "your-agent-name"
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## 4. Pull Ollama Models
|
|
151
|
+
|
|
152
|
+
The consciousness loop routes to two primary local models:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# FAST tier — quick replies, chat, summaries (~2 GB)
|
|
156
|
+
ollama pull llama3.2
|
|
157
|
+
|
|
158
|
+
# CODE tier — code review, refactoring, technical tasks (~14 GB)
|
|
159
|
+
ollama pull devstral
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Verify Ollama is running and models are available:
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
ollama list
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
The daemon performs an Ollama warmup on startup (pulls `llama3.2` into RAM) so the first real message is fast. If Ollama is not running, the daemon falls back through the configured fallback chain.
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 5. Configuration
|
|
173
|
+
|
|
174
|
+
### Consciousness config
|
|
175
|
+
|
|
176
|
+
Generate the default config file (optional — sensible defaults apply without it):
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
skcapstone consciousness config --init
|
|
180
|
+
# → writes ~/.skcapstone/config/consciousness.yaml
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Key settings in `~/.skcapstone/config/consciousness.yaml`:
|
|
184
|
+
|
|
185
|
+
```yaml
|
|
186
|
+
enabled: true
|
|
187
|
+
use_inotify: true # sub-second inbox trigger via watchdog
|
|
188
|
+
inotify_debounce_ms: 200 # debounce window
|
|
189
|
+
response_timeout: 120 # seconds before a request is abandoned
|
|
190
|
+
max_context_tokens: 8000 # tokens allocated to system prompt
|
|
191
|
+
max_history_messages: 10 # conversation turns kept in context
|
|
192
|
+
auto_memory: true # store significant exchanges to memory
|
|
193
|
+
auto_ack: true # send ACK before generating response
|
|
194
|
+
max_concurrent_requests: 3 # parallel LLM requests
|
|
195
|
+
fallback_chain:
|
|
196
|
+
- ollama
|
|
197
|
+
- grok
|
|
198
|
+
- kimi
|
|
199
|
+
- nvidia
|
|
200
|
+
- anthropic
|
|
201
|
+
- openai
|
|
202
|
+
- passthrough
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Show the current resolved config at any time:
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
skcapstone consciousness config --show
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Model profiles
|
|
212
|
+
|
|
213
|
+
Model-specific prompt formatting is controlled by `~/.skcapstone/config/model_profiles.yaml`. The bundled defaults (in `src/skcapstone/data/model_profiles.yaml`) cover all major model families. Copy and edit to override:
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
cp "$(python -c 'import skcapstone; import pathlib; print(pathlib.Path(skcapstone.__file__).parent / "data" / "model_profiles.yaml")')" \
|
|
217
|
+
~/.skcapstone/config/model_profiles.yaml
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### LLM API keys (optional)
|
|
221
|
+
|
|
222
|
+
Set these in your shell profile to enable cloud fallbacks:
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
export ANTHROPIC_API_KEY=sk-ant-...
|
|
226
|
+
export OPENAI_API_KEY=sk-...
|
|
227
|
+
export XAI_API_KEY=... # Grok
|
|
228
|
+
export MOONSHOT_API_KEY=... # Kimi
|
|
229
|
+
export NVIDIA_API_KEY=... # NVIDIA NIM
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Check which backends are currently reachable:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
skcapstone consciousness backends
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## 6. Starting the Daemon
|
|
241
|
+
|
|
242
|
+
The daemon runs inbox polling, vault sync, heartbeat, self-healing, and the consciousness loop.
|
|
243
|
+
|
|
244
|
+
### Foreground (for testing)
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
skcapstone daemon start --foreground
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
Output:
|
|
251
|
+
|
|
252
|
+
```
|
|
253
|
+
Starting daemon on port 7777
|
|
254
|
+
Poll: 10s | Sync: 300s
|
|
255
|
+
Consciousness: enabled
|
|
256
|
+
Log: ~/.skcapstone/logs/daemon.log
|
|
257
|
+
Running in foreground (Ctrl+C to stop)
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
### Flags
|
|
261
|
+
|
|
262
|
+
| Flag | Default | Description |
|
|
263
|
+
|------|---------|-------------|
|
|
264
|
+
| `--port` | `7777` | Local HTTP API port |
|
|
265
|
+
| `--poll` | `10` | Inbox poll interval (seconds) |
|
|
266
|
+
| `--sync-interval` | `300` | Vault sync interval (seconds) |
|
|
267
|
+
| `--no-consciousness` | off | Disable autonomous LLM responses |
|
|
268
|
+
| `--foreground` | off | Block in terminal (no daemonization) |
|
|
269
|
+
|
|
270
|
+
### systemd user service (persistent)
|
|
271
|
+
|
|
272
|
+
Install and enable at login — no root required:
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
skcapstone daemon install
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
Then control with standard systemd commands:
|
|
279
|
+
|
|
280
|
+
```bash
|
|
281
|
+
systemctl --user status skcapstone
|
|
282
|
+
systemctl --user restart skcapstone
|
|
283
|
+
skcapstone daemon logs -n 50
|
|
284
|
+
skcapstone daemon logs -f # prints the journalctl command to follow live
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Uninstall:
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
skcapstone daemon uninstall
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## 7. Send a Test Message
|
|
296
|
+
|
|
297
|
+
The consciousness loop watches `$SKCOMM_HOME/sync/comms/inbox/` (default `~/.skcomm/sync/comms/inbox/`). Dropping a JSON envelope there triggers an immediate response.
|
|
298
|
+
|
|
299
|
+
### Quick end-to-end test via CLI
|
|
300
|
+
|
|
301
|
+
```bash
|
|
302
|
+
skcapstone consciousness test "Hello, are you there?"
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
This runs the full pipeline (classify → model router → LLM → response) synchronously and prints the result without going through SKComm.
|
|
306
|
+
|
|
307
|
+
### Manual inbox write (mimics a real peer message)
|
|
308
|
+
|
|
309
|
+
```bash
|
|
310
|
+
INBOX=~/.skcomm/sync/comms/inbox
|
|
311
|
+
mkdir -p "$INBOX"
|
|
312
|
+
|
|
313
|
+
cat > "$INBOX/test-$(date +%s).json" << 'EOF'
|
|
314
|
+
{
|
|
315
|
+
"id": "test-001",
|
|
316
|
+
"sender": "human",
|
|
317
|
+
"payload": {
|
|
318
|
+
"content": "Hello, Opus! What models are you running?",
|
|
319
|
+
"content_type": "text/plain"
|
|
320
|
+
},
|
|
321
|
+
"timestamp": "2026-03-01T00:00:00Z"
|
|
322
|
+
}
|
|
323
|
+
EOF
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
With inotify active the daemon picks this up within 200 ms. Without inotify it polls every 10 s.
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## 8. Verify It Works
|
|
331
|
+
|
|
332
|
+
### Check the consciousness endpoint
|
|
333
|
+
|
|
334
|
+
```bash
|
|
335
|
+
curl -s http://127.0.0.1:7777/consciousness | python3 -m json.tool
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
Expected:
|
|
339
|
+
|
|
340
|
+
```json
|
|
341
|
+
{
|
|
342
|
+
"enabled": true,
|
|
343
|
+
"messages_processed": 1,
|
|
344
|
+
"responses_sent": 1,
|
|
345
|
+
"errors": 0,
|
|
346
|
+
"inotify_active": true,
|
|
347
|
+
"backends": {
|
|
348
|
+
"ollama": true,
|
|
349
|
+
"passthrough": true
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
### Other API endpoints
|
|
355
|
+
|
|
356
|
+
```bash
|
|
357
|
+
curl -s http://127.0.0.1:7777/ping # { "pong": true, "pid": 12345 }
|
|
358
|
+
curl -s http://127.0.0.1:7777/status # full daemon state
|
|
359
|
+
curl -s http://127.0.0.1:7777/health # transport health
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
### CLI status commands
|
|
363
|
+
|
|
364
|
+
```bash
|
|
365
|
+
skcapstone daemon status # daemon uptime, message count, transport health
|
|
366
|
+
skcapstone consciousness status # loop stats, backend table
|
|
367
|
+
skcapstone status # full six-pillar overview
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
## 9. Troubleshooting
|
|
373
|
+
|
|
374
|
+
### Daemon won't start — "No agent found"
|
|
375
|
+
|
|
376
|
+
```
|
|
377
|
+
No agent found. Run skcapstone init first.
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
Run `skcapstone init` to create the agent home.
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
### `identity` pillar degraded
|
|
385
|
+
|
|
386
|
+
The `capauth` package is not installed. Either:
|
|
387
|
+
|
|
388
|
+
```bash
|
|
389
|
+
pip install "skcapstone[identity]"
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
or re-run `skcapstone init` after installing — the PGP key is generated lazily.
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
### Consciousness loop not loading
|
|
397
|
+
|
|
398
|
+
Check the daemon log:
|
|
399
|
+
|
|
400
|
+
```bash
|
|
401
|
+
tail -f ~/.skcapstone/logs/daemon.log
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
Common causes:
|
|
405
|
+
|
|
406
|
+
| Error | Fix |
|
|
407
|
+
|-------|-----|
|
|
408
|
+
| `skseed not installed` | `pip install "skcapstone[seed]"` |
|
|
409
|
+
| `skcomm not installed` | `pip install "skcapstone[comms]"` |
|
|
410
|
+
| `watchdog not installed` | `pip install "skcapstone[consciousness]"` — degrades to polling |
|
|
411
|
+
| `Ollama warmup skipped` | Start Ollama: `ollama serve` then `ollama pull llama3.2` |
|
|
412
|
+
|
|
413
|
+
---
|
|
414
|
+
|
|
415
|
+
### Ollama not reachable
|
|
416
|
+
|
|
417
|
+
The daemon probes `http://localhost:11434/api/tags` at startup. If Ollama is on a different host:
|
|
418
|
+
|
|
419
|
+
```bash
|
|
420
|
+
export OLLAMA_HOST=http://192.168.1.50:11434
|
|
421
|
+
skcapstone daemon start --foreground
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
426
|
+
### `inotify: degraded (polling only)`
|
|
427
|
+
|
|
428
|
+
```bash
|
|
429
|
+
pip install watchdog
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
Then restart the daemon. Without `watchdog`, inbox is polled every `--poll` seconds instead of triggered instantly.
|
|
433
|
+
|
|
434
|
+
---
|
|
435
|
+
|
|
436
|
+
### Port 7777 already in use
|
|
437
|
+
|
|
438
|
+
```bash
|
|
439
|
+
skcapstone daemon start --port 7778 --foreground
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
---
|
|
443
|
+
|
|
444
|
+
### Disable consciousness temporarily
|
|
445
|
+
|
|
446
|
+
```bash
|
|
447
|
+
# Via flag
|
|
448
|
+
skcapstone daemon start --no-consciousness --foreground
|
|
449
|
+
|
|
450
|
+
# Via environment (survives restarts)
|
|
451
|
+
export SKCAPSTONE_CONSCIOUSNESS_ENABLED=false
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
---
|
|
455
|
+
|
|
456
|
+
### View raw daemon logs
|
|
457
|
+
|
|
458
|
+
```bash
|
|
459
|
+
tail -f ~/.skcapstone/logs/daemon.log
|
|
460
|
+
# or (systemd)
|
|
461
|
+
journalctl --user -u skcapstone -f
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
---
|
|
465
|
+
|
|
466
|
+
## Next Steps
|
|
467
|
+
|
|
468
|
+
```bash
|
|
469
|
+
skcapstone memory store "I prefer concise responses" # store a memory
|
|
470
|
+
skcapstone memory search "Ollama" # search memories
|
|
471
|
+
skcapstone coord status # coordination board
|
|
472
|
+
skcapstone soul status # soul blueprint / active soul
|
|
473
|
+
skcapstone sync push # push state to peers
|
|
474
|
+
skcapstone context show --format claude-md # regenerate CLAUDE.md
|
|
475
|
+
skcapstone skills list # browse remote skills registry
|
|
476
|
+
skcapstone skills install <name> # install a skill from the registry
|
|
477
|
+
```
|