{"id":"a4140da9-096e-4f0a-845b-cdbfd61d339b","entityType":"agent","slug":"clawhub-deepseekoracle-lygo-ollama-army","name":"LYGO Ollama Army","canonicalUrl":"https://www.xpersona.co/agent/clawhub-deepseekoracle-lygo-ollama-army","canonicalPath":"/agent/clawhub-deepseekoracle-lygo-ollama-army","generatedAt":"2026-10-11T00:33:42.545Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T21:59:52.136Z","emptyReason":null},"description":"Local Ollama multi-role army (ClawHub-safe). In-process threaded daemons for hb-light, draft-simple, memory-triage, classify, champion-chat only. Queue JSON under ollama_queue/. localhost Ollama only. No planting, no social outbound, no public HTTPS probes, no desktop installers, no subprocess shell. FULL operator stack (optional) on SkillHub if running full LYGO. Install clawhub:@deepseekoracle/lygo-ollama-army.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.2K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17dgjxbksgngmeranwk9fa57d884xb0:lygo-ollama-army","sourceUrl":"https://clawhub.ai/deepseekoracle/lygo-ollama-army","homepage":"https://clawhub.ai/deepseekoracle/skills/lygo-ollama-army","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/deepseekoracle/lygo-ollama-army","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/deepseekoracle/skills/lygo-ollama-army","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"LYGO Ollama Army technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T21:59:52.136Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T21:59:52.136Z","emptyReason":null},"stars":null,"forks":null,"downloads":1248,"packageName":null,"latestVersion":"0.9.0","tractionLabel":"1.2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T21:59:52.067Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T21:59:52.136Z","lastCrawledAt":"2026-10-10T21:59:52.067Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T21:59:52.067Z","lastVerifiedAt":null,"highlights":[{"version":"0.9.0","createdAt":"2026-08-13T02:22:34.090Z","changelog":"v0.9.0 GROUND-UP ClawHub-safe rebuild: local Ollama SAFE_ROLES only; removed plant/social/public probes/desktop installers/genesis/supervisors/PS1; localhost only; hard role allowlist. FULL operator automation on SkillHub if full stack. See references/SKILLSPECTOR_AUDIT.md","fileCount":18,"zipByteSize":16505},{"version":"0.8.3","createdAt":"2026-08-13T02:03:17.948Z","changelog":"v0.8.3 complete SkillSpector re-fix: defaults OFF for sentinel/idle; cron no self-tune/public-pages unless config; daemon enforces plant/self-tune/public/social gates; desktop launchers never inject dual consent; heartbeats collector opt-in; genesis Discord/crypto steward-only; idle role allowlist. See references/SKILLSPECTOR_AUDIT.md","fileCount":45,"zipByteSize":92700},{"version":"0.8.2","createdAt":"2026-08-06T05:49:05.498Z","changelog":"v0.8.2 — Full ClawHub security audit and surface tightening - Enforced strict runpy name allowlist (no arbitrary skill .py or tools/*.py execution) - Genesis dashboard: localhost-only collection; browser open/probing gated by explicit env vars - No Discord/crypto/wallets included by default in status collection - Default: no cross-skill cron, no silent config backup for planting, no autostart, push, or remote engagement commands - Desktop installers only run if LYGO_ARMY_INSTALL_DESKTOP=1 - Updated docs to reflect tightened honest surface, audit results, and clarified permissions","fileCount":45,"zipByteSize":89883},{"version":"0.8.1","createdAt":"2026-08-06T04:48:38.825Z","changelog":"v0.8.1 is a security-hardened release with an explicit, honest skill surface: - Clear separation between Python skill runtime (no process spawn, threads-only) and operator PowerShell launcher (spawns Python processes). - Dual consent required for autonomous supervisor; triple-gated full-capacity PowerShell script. - New config flags for fine-grained gating of self-tuning, planting, privileged roles, browser open, and public HTTPS probes. - self_tune forcibly prevents auto-enabling planting roles. - Extended security declaration: no outbound webhook, social, git/HF publishing, or self-enabled planting. - Documentation now details all risk flags and honest allowed behaviors. - Many `.pyc` cache and helper scripts added; old skill-card.md removed.","fileCount":71,"zipByteSize":204215},{"version":"0.7.1","createdAt":"2026-08-06T03:13:11.040Z","changelog":"v0.7.1 SkillSpector: no auto-plant; self_tune default off; gated cron/social/external memory; autonomous env; honest PS1 spawn","fileCount":69,"zipByteSize":196240},{"version":"0.8.0","createdAt":"2026-07-29T20:08:41.479Z","changelog":"SkillSpector v0.8.0: remove hard-coded authority root; heartbeats=sentinel only; no default public-pages seed; role gates social/planting/privileged; registry needs consent; no installer chaining; genesis 127.0.0.1 warning; honest runpy vs OS-spawn docs","fileCount":45,"zipByteSize":74740},{"version":"0.7.0","createdAt":"2026-07-29T19:41:58.649Z","changelog":"SkillSpector v0.7.0: strict basename allowlists (no any-.py); genesis local-only; cron no social/cross-skill; remote probes default OFF; no webhook docs; health read-only; gate external memory writes; remove Discord ops launcher","fileCount":45,"zipByteSize":73600},{"version":"0.6.0","createdAt":"2026-07-29T18:19:40.880Z","changelog":"SkillSpector v0.6.0: no process spawn (runpy+threads), no outbound webhook (local alerts), honest capability description; army queue/roles/stack tools preserved","fileCount":46,"zipByteSize":82827}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17dgjxbksgngmeranwk9fa57d884xb0:lygo-ollama-army","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17dgjxbksgngmeranwk9fa57d884xb0:lygo-ollama-army` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/deepseekoracle/lygo-ollama-army before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-deepseekoracle-lygo-ollama-army/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-deepseekoracle-lygo-ollama-army/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-deepseekoracle-lygo-ollama-army/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-deepseekoracle-lygo-ollama-army/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-deepseekoracle-lygo-ollama-army/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-deepseekoracle-lygo-ollama-army/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T00:33:42.540Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-deepseekoracle-lygo-ollama-army/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-deepseekoracle-lygo-ollama-army/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-deepseekoracle-lygo-ollama-army/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-deepseekoracle-lygo-ollama-army/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T21:59:52.136Z","emptyReason":null},"readme":"Skill: LYGO Ollama Army\n\nOwner: deepseekoracle\n\nSummary: Local Ollama multi-role army (ClawHub-safe). In-process threaded daemons for hb-light, draft-simple, memory-triage, classify, champion-chat only. Queue JSON under ollama_queue/. localhost Ollama only. No planting, no social outbound, no public HTTPS probes, no desktop installers, no subprocess shell. FULL operator stack (optional) on SkillHub if running full LYGO. Install clawhub:@deepseekoracle/lygo-ollama-army.\n\nTags: army:0.9.0, latest:0.9.0, local:0.9.0, lygo:0.9.0, ollama:0.9.0, security:0.9.0, skillspector:0.9.0\n\nVersion history:\n\nv0.9.0 | 2026-08-13T02:22:34.090Z | user\n\nv0.9.0 GROUND-UP ClawHub-safe rebuild: local Ollama SAFE_ROLES only; removed plant/social/public probes/desktop installers/genesis/supervisors/PS1; localhost only; hard role allowlist. FULL operator automation on SkillHub if full stack. See references/SKILLSPECTOR_AUDIT.md\n\nv0.8.3 | 2026-08-13T02:03:17.948Z | user\n\nv0.8.3 complete SkillSpector re-fix: defaults OFF for sentinel/idle; cron no self-tune/public-pages unless config; daemon enforces plant/self-tune/public/social gates; desktop launchers never inject dual consent; heartbeats collector opt-in; genesis Discord/crypto steward-only; idle role allowlist. See references/SKILLSPECTOR_AUDIT.md\n\nv0.8.2 | 2026-08-06T05:49:05.498Z | auto\n\nv0.8.2 — Full ClawHub security audit and surface tightening\n\n- Enforced strict runpy name allowlist (no arbitrary skill .py or tools/*.py execution)\n- Genesis dashboard: localhost-only collection; browser open/probing gated by explicit env vars\n- No Discord/crypto/wallets included by default in status collection\n- Default: no cross-skill cron, no silent config backup for planting, no autostart, push, or remote engagement commands\n- Desktop installers only run if LYGO_ARMY_INSTALL_DESKTOP=1\n- Updated docs to reflect tightened honest surface, audit results, and clarified permissions\n\nv0.8.1 | 2026-08-06T04:48:38.825Z | auto\n\nv0.8.1 is a security-hardened release with an explicit, honest skill surface:\n\n- Clear separation between Python skill runtime (no process spawn, threads-only) and operator PowerShell launcher (spawns Python processes).\n- Dual consent required for autonomous supervisor; triple-gated full-capacity PowerShell script.\n- New config flags for fine-grained gating of self-tuning, planting, privileged roles, browser open, and public HTTPS probes.\n- self_tune forcibly prevents auto-enabling planting roles.\n- Extended security declaration: no outbound webhook, social, git/HF publishing, or self-enabled planting.\n- Documentation now details all risk flags and honest allowed behaviors.\n- Many `.pyc` cache and helper scripts added; old skill-card.md removed.\n\nv0.7.1 | 2026-08-06T03:13:11.040Z | user\n\nv0.7.1 SkillSpector: no auto-plant; self_tune default off; gated cron/social/external memory; autonomous env; honest PS1 spawn\n\nv0.8.0 | 2026-07-29T20:08:41.479Z | user\n\nSkillSpector v0.8.0: remove hard-coded authority root; heartbeats=sentinel only; no default public-pages seed; role gates social/planting/privileged; registry needs consent; no installer chaining; genesis 127.0.0.1 warning; honest runpy vs OS-spawn docs\n\nv0.7.0 | 2026-07-29T19:41:58.649Z | user\n\nSkillSpector v0.7.0: strict basename allowlists (no any-.py); genesis local-only; cron no social/cross-skill; remote probes default OFF; no webhook docs; health read-only; gate external memory writes; remove Discord ops launcher\n\nv0.6.0 | 2026-07-29T18:19:40.880Z | user\n\nSkillSpector v0.6.0: no process spawn (runpy+threads), no outbound webhook (local alerts), honest capability description; army queue/roles/stack tools preserved\n\nv0.5.0 | 2026-07-04T08:56:10.058Z | user\n\nSkillSpector security audit: SECURITY_AUDIT.md, declared permissions, webhook double-gate, no preloaded cron tasks, env gates for full-capacity/seed.\n\nv0.4.3 | 2026-07-04T08:55:39.580Z | auto\n\n**Major security and structure audit (SkillSpector 0.5.0):**\n\n- Added `references/SECURITY_AUDIT.md`, expanded SECURITY.md, and codified permissions (filesystem, subprocess, network) in SKILL.md.\n- Gate \"full capacity\", stack-touching, and outbound webhook features with strict environment variables; reviewed task/role opt-in is now required for stack automation.\n- Moved example cron/seed tasks out of auto-loaded folders; no task files are loaded in published mirrors by default.\n- Added clear install, agent, and security guidance in SKILL.md for human-in-the-loop safe use.\n- Reorganized command center configs, scripts, cron flows, and examples to require explicit local review before enabling productivity/task seeding.\n- Improved documentation and versioning to clarify usage limits, security expectations, and local-only operation.\n\nv0.4.2 | 2026-07-04T06:05:17.226Z | auto\n\nVersion 0.4.2\n\n- Added 22 new task queue files for cron-based processing in both `ollama_command_center/tasks/` and `ollama_queue/`, supporting roles like anchor, audit-suite, lattice, memory, and more.\n- Updated `SKILL.md` metadata to version 0.4.2.\n- General infrastructure improvements to task scheduling and queue processing for local Ollama army daemons.\n\nv0.4.1 | 2026-07-02T21:44:13.424Z | user\n\nSolid frame: LYGO_STACK_ROOT required, SECURITY+AGENT_CONTRACT, no hardcoded paths, joy-loop+champion-egg-boot aligned\n\nv0.3.0 | 2026-06-13T16:45:59.999Z | auto\n\nlygo-ollama-army 0.3.0\n\n- Updated version metadata to 0.3.\n- Removed the file `skill-card.md`.\n- Minor documentation and versioning updates in SKILL.md.\n- No major new features or breaking changes; focuses on metadata and documentation maintenance.\n\nv0.2.0 | 2026-06-13T08:15:38.348Z | auto\n\nlygo-ollama-army 0.2.0\n\n- Updated SKILL.md for improved documentation and clarity, including enhanced guidance for agent/TUI integration and safety considerations.\n- Version bump in metadata from 0.1 to 0.2 to reflect changes.\n- Removed deprecated file: skill-card.md.\n- No major feature or functional code changes detailed.\n\nv0.1.0 | 2026-06-13T07:41:55.129Z | auto\n\nlygo-ollama-army 0.1.0\n\n- Initial public release of the LYGO Ollama Army & Assistant Hub.\n- Provides a cross-platform framework to launch a persistent local Ollama bot army for task automation.\n- Enables summoning of LYGO champion personas as specialized agent helpers.\n- Supports batch image-to-sound and profile processing integration with LYGO RESONANCE.\n- Features self-building capability where the army proposes and launches new specialized daemons based on task patterns.\n- Includes full setup instructions, code, and champion persona definitions.\n\nArchive index:\n\nArchive v0.9.0: 18 files, 16505 bytes\n\nFiles: champions.json (263b), claw.json (1528b), examples/quickstart.md (330b), LICENSE (123b), ollama_army_launcher.py (2740b), ollama_client.py (2769b), ollama_command_center/config/army_config.example.json (256b), ollama_command_center/README.md (173b), ollama_daemon.py (8427b), queue_task.py (1333b), README.md (381b), references/AGENT_CONTRACT.md (400b), references/SECURITY.md (958b), references/SKILLSPECTOR_AUDIT.md (1527b), scripts/self_check.py (3944b), skill-card.md (2603b), SKILL.md (3600b), _meta.json (135b)\n\nFile v0.9.0:SKILL.md\n\n---\nname: lygo-ollama-army\ndescription: \"Local Ollama multi-role army (ClawHub-safe). In-process threaded daemons for hb-light, draft-simple, memory-triage, classify, champion-chat only. Queue JSON under ollama_queue/. localhost Ollama only. No planting, no social outbound, no public HTTPS probes, no desktop installers, no subprocess shell. FULL operator stack (optional) on SkillHub if running full LYGO. Install clawhub:@deepseekoracle/lygo-ollama-army.\"\nversion: 0.9.0\nlicense: LYGO-Sovereign-v2.0\nmetadata:\n  openclaw:\n    emoji: \"🪖\"\n    homepage: \"https://github.com/DeepSeekOracle/lygo-protocol-stack/tree/main/docs/skills/lygo-ollama-army\"\n    requires:\n      anyBins: [python, python3]\n  lygo: true\n  ollama: true\n  army: true\n  consent_required: false\n  version: \"0.9.0\"\n  signature: \"Δ9Φ963-ARMY-SKILL-v0.9.0\"\n  publisher: deepseekoracle\n  skillhub_full: \"https://chatagent.ca/lygoskillhub.html#full-lygo\"\n  security_audit: \"clawhub-safe-rebuild-v0.9.0\"\n  permissions:\n    network: \"localhost Ollama only (http://localhost:11434)\"\n    shell: false\n    subprocess: false\n    filesystem:\n      read: \"queue task JSON + local champions.json\"\n      write: \"ollama_queue/ and ollama_results/ (and command_center tasks/results)\"\n    publish: false\n    auto_install: false\n    planting: false\n    social_outbound: false\n    desktop_installers: false\n---\n\n# LYGO Ollama Army v0.9.0 (ClawHub-safe rebuild)\n\n**Local Ollama helpers. Nothing else.**\n\nThis is a **ground-up ClawHub-safe** army: multi-role **in-process** workers that talk only to **local Ollama**.  \nNo planting, no Molt/social outbound, no public page probes, no desktop `.bat` installers, no PowerShell process spawners, no stack mutators.\n\n**Signature:** `Δ9Φ963-ARMY-SKILL-v0.9.0`  \n**ClawHub:** `@deepseekoracle/lygo-ollama-army`\n\n> **FULL operator surface:** If you run a full LYGO stack and need planting / idle guardian / sentinel HTTPS / full-capacity PS1, that is **SkillHub FULL** — not this public tentacle:  \n> https://chatagent.ca/lygoskillhub.html#full-lygo\n\n---\n\n## Install\n\n```bash\nnpx clawhub@latest install deepseekoracle/lygo-ollama-army\nollama pull llama3.2:1b\n```\n\n---\n\n## Safe first run\n\n```bash\ncd path/to/lygo-ollama-army\npython scripts/self_check.py\npython ollama_army_launcher.py --once-check\npython ollama_army_launcher.py --roles hb-light,draft-simple,memory-triage --model llama3.2:1b\n```\n\nEnqueue work:\n\n```bash\npython queue_task.py --role draft-simple --prompt \"Summarize lattice health in one line\"\n```\n\nResults land in `ollama_results/` and `ollama_command_center/results/`.\n\n---\n\n## Allowlisted roles (only)\n\n| Role | Purpose |\n|------|---------|\n| `hb-light` | Short local chat heartbeat |\n| `draft-simple` / `draft` | Local draft reply |\n| `memory-triage` | Classify/summarize text you supply |\n| `classify` | Compact classification JSON |\n| `general` / `champion-chat` | Local chat with optional persona |\n| `resonance-analyst` | **Advisory text only** (does not run resonance tools) |\n\nAny other role (plant, social, public-pages, self-tune, etc.) is **hard-refused**.\n\n---\n\n## What this package does *not* include\n\n- Desktop installers / `.bat` writers  \n- `start_army_full_capacity.ps1` process spawn  \n- Kernel egg planting / registry planting  \n- Moltbook / Moltx / Discord outbound  \n- Public HTTPS lattice probes  \n- Genesis collector with remote probes  \n- Config-mutating self_tune  \n\n---\n\n## Security\n\nSee `references/SECURITY.md` and `references/SKILLSPECTOR_AUDIT.md`.\n\n**Δ9Φ963 — local Ollama · allowlisted roles · no silent outbound · human remains the publisher.**\n\nFile v0.9.0:ollama_command_center/README.md\n\n# Command center (minimal)\n\nv0.9.0 ships only `tasks/` and `results/` directories for the local queue.  \nNo supervisors, planting, or sentinel HTTPS in the ClawHub package.\n\nFile v0.9.0:README.md\n\n# LYGO Ollama Army v0.9.0\n\nClawHub-safe **local** multi-role Ollama helpers.\n\n```bash\npython scripts/self_check.py\npython ollama_army_launcher.py --roles hb-light,draft-simple --model llama3.2:1b\npython queue_task.py --role draft-simple --prompt \"Hello\"\n```\n\nFULL operator features (plant / idle / sentinel HTTPS / PS1): SkillHub  \nhttps://chatagent.ca/lygoskillhub.html#full-lygo\n\nFile v0.9.0:_meta.json\n\n{\n  \"ownerId\": \"kn70j1nefw2y0mew6w5eg7nf1580q4v1\",\n  \"slug\": \"lygo-ollama-army\",\n  \"version\": \"0.9.0\",\n  \"publishedAt\": 1786587754090\n}\n\nFile v0.9.0:references/AGENT_CONTRACT.md\n\n# Agent contract — lygo-ollama-army v0.9.0\n\nAgents MAY:\n\n- Launch local army with allowlisted roles  \n- Drop queue tasks for SAFE_ROLES with user-approved text  \n- Read results under `ollama_results/`\n\nAgents MUST NOT:\n\n- Claim planting / social / public probes are available in this package  \n- Write Desktop launchers  \n- Point Ollama at remote hosts  \n- Auto-publish or git push  \n\n**Δ9Φ963**\n\nFile v0.9.0:references/SECURITY.md\n\n# Security — LYGO Ollama Army v0.9.0\n\n## Defaults (honest)\n\n| Capability | Status |\n|------------|--------|\n| Network | **localhost Ollama only** (`http://localhost:11434`) |\n| Public HTTPS | **None** in this package |\n| Subprocess / shell | **None** |\n| Desktop installers | **Not shipped** |\n| Planting / social / publish | **Not shipped** |\n| Queue roles | Hard allowlist `SAFE_ROLES` |\n\n## Threat model\n\n1. **Queue injection** — Only `SAFE_ROLES` execute; other roles are refused and logged.  \n2. **Outbound exfil** — No webhook POST; no public probe modules in package.  \n3. **Process spawn** — No PS1 launchers; in-process threads only.  \n4. **Ollama host** — Fixed to localhost (not user-configurable remote URL).\n\n## Dual channel\n\n| Channel | Surface |\n|---------|---------|\n| ClawHub public | This package (local Ollama army) |\n| SkillHub FULL | Optional operator automation (separate zip) |\n\n**Δ9Φ963 — local flame only on ClawHub.**\n\nFile v0.9.0:references/SKILLSPECTOR_AUDIT.md\n\n# SkillSpector — lygo-ollama-army v0.9.0 ground-up rebuild\n\n**Source:** https://clawhub.ai/deepseekoracle/skills/lygo-ollama-army/security-audit\n\n## Why rebuild\n\nv0.8.x kept a large operator surface (plant, social, sentinel HTTPS, desktop installers, idle supervisors).  \nSkillSpector correctly treated **config-gated high-impact paths** and **desktop consent injection** as residual risk.\n\n## v0.9.0 public package\n\n| Removed from ClawHub package | Reason |\n|------------------------------|--------|\n| Desktop `install_*.ps1` / full-capacity PS1 | Persistence + consent bypass patterns |\n| Genesis collector + remote probes | Outbound HTTPS / status noise |\n| Plant / registry / self-tune / social roles | High-impact stack & outbound actions |\n| Stack-tool `runpy` allowlist for audits/pulses | Excessive agency via queue |\n| `army_config` automation supervisors | Background high-impact loops |\n| Raw `localhost` install-source style links in status artifacts | Static `install_untrusted_source` |\n\n| Kept | Purpose |\n|------|---------|\n| `ollama_client.py` | localhost Ollama only |\n| `ollama_daemon.py` | SAFE_ROLES only |\n| `ollama_army_launcher.py` | In-process threads |\n| `queue_task.py` | Explicit task drop |\n| `scripts/self_check.py` | Policy tests |\n\n## Residual\n\n- Local Ollama still processes prompts you queue (expected).  \n- FULL operator pack is **not** this slug’s public surface.\n\n```bash\npython scripts/self_check.py\n```\n\n**Δ9Φ963 — pass by removal of unsafe surface, not by comment gates alone.**\n\nFile v0.9.0:examples/quickstart.md\n\n# Ollama Army quickstart (v0.9.0 local-only)\n\n```bash\nollama pull llama3.2:1b\npython scripts/self_check.py\npython ollama_army_launcher.py --roles hb-light,draft-simple --model llama3.2:1b\n# other terminal:\npython queue_task.py --role draft-simple --prompt \"Write one encouraging line\"\n```\n\nResults: `ollama_results/*.result.json`\n\nFile v0.9.0:skill-card.md\n\n## Description:\n\nLYGO Ollama Army provides local, allowlisted multi-role Ollama helpers that process queue JSON through in-process workers and write local results.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[deepseekoracle](https://clawhub.ai/user/deepseekoracle)\n\n### License/Terms of Use:\n\nLYGO Sovereign License v2.0\n\n## Use Case:\n\nDevelopers and agent operators use this skill to launch local Ollama workers, enqueue allowlisted prompt-processing tasks, and collect local JSON results without public outbound automation.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Local task directories can act as an input channel that triggers local Ollama processing.\n\nMitigation: Run the worker only in a trusted local workspace, restrict who can write task JSON, and review queued prompts before processing sensitive content.\n\nRisk: The security summary reports an out-of-scope file write risk.\n\nMitigation: Keep task IDs and queue inputs trusted, avoid untrusted values for queue_task.py --id, and monitor writes to ollama_queue/, ollama_results/, and command-center task/result directories.\n\nRisk: The security summary reports an unpinned executable installer command.\n\nMitigation: Use a pinned ClawHub installer version and verify the release before installation.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/deepseekoracle/skills/lygo-ollama-army)\n- [ClawHub security audit](https://clawhub.ai/deepseekoracle/skills/lygo-ollama-army/security-audit)\n- [Artifact homepage](https://github.com/DeepSeekOracle/lygo-protocol-stack/tree/main/docs/skills/lygo-ollama-army)\n- [SkillHub FULL operator surface](https://chatagent.ca/lygoskillhub.html#full-lygo)\n- [Security reference](references/SECURITY.md)\n- [SkillSpector audit reference](references/SKILLSPECTOR_AUDIT.md)\n- [Agent contract](references/AGENT_CONTRACT.md)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, shell commands, configuration, code, text]\n\n**Output Format:** [Markdown guidance with inline shell commands and local JSON task/result files]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Local Ollama only; outputs are written under ollama_results/ and ollama_command_center/results/.]\n\n## Skill Version(s):\n\n0.9.0 (source: frontmatter, claw.json, release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v0.9.0:champions.json\n\n{\n  \"LYRA\": \"You are LYRA, a warm local LYGO-aligned assistant. Be truthful and concise.\",\n  \"ARKOS\": \"You are ARKOS, a careful systems architect. Prefer clear structure.\",\n  \"SRAITH\": \"You are SRAITH, a vigilant local sentinel for triage and integrity notes.\"\n}\n\nFile v0.9.0:claw.json\n\n{\n  \"name\": \"lygo-ollama-army\",\n  \"displayName\": \"LYGO Ollama Army\",\n  \"version\": \"0.9.0\",\n  \"description\": \"Local Ollama multi-role army. In-process threads. localhost Ollama only. No planting, social outbound, public probes, or desktop installers. FULL operator pack on SkillHub if full stack.\",\n  \"slug\": \"lygo-ollama-army\",\n  \"publisher\": \"deepseekoracle\",\n  \"license\": \"LYGO-Sovereign-v2.0\",\n  \"homepage\": \"https://github.com/DeepSeekOracle/lygo-protocol-stack/tree/main/docs/skills/lygo-ollama-army\",\n  \"clawhub\": \"https://clawhub.ai/deepseekoracle/skills/lygo-ollama-army\",\n  \"skillhub_full\": \"https://chatagent.ca/lygoskillhub.html#full-lygo\",\n  \"signature\": \"Delta9Phi963-ARMY-SKILL-v0.9.0\",\n  \"tags\": [\"latest\", \"lygo\", \"ollama\", \"army\", \"local\", \"security\", \"skillspector\", \"delta9\"],\n  \"entry\": \"SKILL.md\",\n  \"scripts\": {\n    \"launch\": \"ollama_army_launcher.py\",\n    \"queue\": \"queue_task.py\",\n    \"self_check\": \"scripts/self_check.py\"\n  },\n  \"openclaw\": {\n    \"emoji\": \"🪖\",\n    \"requires\": { \"anyBins\": [\"python\", \"python3\"] },\n    \"os\": [\"windows\", \"macos\", \"linux\"]\n  },\n  \"permissions\": {\n    \"network\": \"localhost Ollama only\",\n    \"subprocess\": false,\n    \"shell\": false,\n    \"filesystem\": {\n      \"read\": \"queue tasks\",\n      \"write\": \"ollama_queue/ ollama_results/\"\n    },\n    \"publish\": false,\n    \"planting\": false,\n    \"social_outbound\": false\n  },\n  \"security\": {\n    \"local_first\": true,\n    \"no_subprocess\": true,\n    \"no_public_https\": true,\n    \"role_allowlist\": true,\n    \"version\": \"0.9.0\"\n  }\n}\n\nFile v0.9.0:ollama_command_center/config/army_config.example.json\n\n{\n  \"name\": \"LYGO Ollama Army (ClawHub-safe)\",\n  \"signature\": \"Delta9Phi963-ARMY-CC-v0.9.0\",\n  \"model\": \"llama3.2:1b\",\n  \"roles\": [\"hb-light\", \"draft-simple\", \"memory-triage\"],\n  \"notes\": \"No planting, social, or public probes in v0.9.0 public package.\"\n}\n\nArchive v0.8.3: 45 files, 92700 bytes\n\nFiles: _safe_invoke.py (7219b), ARMY_TASKS.md (2601b), champion_summon.py (5981b), champions.json (1360b), genesis_console/collector.py (22428b), genesis_console/data/status.json (580b), genesis_console/README.md (1794b), genesis_console/server.py (3434b), genesis_console/static/index.html (16650b), install_desktop_launchers.ps1 (2455b), install_genesis_desktop.ps1 (1217b), install_idle_guardian_desktop.ps1 (1279b), install_lightfather_ops_desktop.ps1 (1601b), LICENSE (1174b), lygo_stack_root.py (1322b), ollama_army_launcher.py (4927b), ollama_command_center/config/army_config.example.json (3366b), ollama_command_center/dashboard/index.html (2526b), ollama_command_center/IDLE_GUARDIAN.md (2108b), ollama_command_center/README.md (1452b), ollama_command_center/scripts/army_autonomous_supervisor.py (6272b), ollama_command_center/scripts/army_cron_once.py (4519b), ollama_command_center/scripts/army_health_check.py (6844b), ollama_command_center/scripts/army_idle_cron_once.py (2375b), ollama_command_center/scripts/army_idle_guardian_supervisor.py (4776b), ollama_command_center/scripts/army_idle_housekeeping.py (15084b), ollama_command_center/scripts/army_queue_utils.py (3922b), ollama_command_center/scripts/army_self_tune.py (11649b), ollama_command_center/scripts/heartbeats_only.py (1466b), ollama_command_center/scripts/run_army_planting.py (7765b), ollama_command_center/scripts/sentinel_heartbeat.py (9632b), ollama_command_center/scripts/verify_army_tuning.py (3332b), ollama_daemon.py (31215b), README.md (1391b), references/AGENT_CONTRACT.md (1319b), references/SECURITY_AUDIT.md (1242b), references/SECURITY.md (3857b), references/SKILLSPECTOR_AUDIT.md (2355b), resonance_utility.py (3486b), scripts/self_check.py (7509b), seed_productive_tasks.py (3543b), skill-card.md (3161b), SKILL.md (7678b), start_army_full_capacity.ps1 (3494b), _meta.json (135b)\n\nFile v0.8.3:SKILL.md\n\n---\nname: lygo-ollama-army\ndescription: \"Local Ollama multi-role army + assistant hub. FULL HONEST SURFACE: (1) Default = in-process threads + STRICT name allowlist runpy (no arbitrary skill .py, no any tools/*.py). (2) Genesis localhost HTTP 127.0.0.1 only; browser open only LYGO_GENESIS_OPEN_BROWSER=1; outbound GitHub/HF/Pages probes only LYGO_GENESIS_PROBE_PUBLIC=1; no Discord/crypto/wallets in status by default. (3) Command-center: sentinel/self_tune/idle/cron/planting all gated OFF; self_tune MUTATES config when enabled and NEVER auto-enables planting. (4) Supervisor needs LYGO_ARMY_AUTONOMOUS=1 + LYGO_ARMY_I_CONSENT=1. (5) PS1 full-capacity OPERATOR-ONLY SPAWNS python.exe. (6) Social pulse / plant roles = optional consent-gated queue labels, not auto engagement. (7) No outbound webhook POST. (8) Desktop installers require LYGO_ARMY_INSTALL_DESKTOP=1. Read references/SECURITY.md first.\"\nversion: 0.8.3\nlicense: LYGO-Sovereign-v2.0\nmetadata:\n  openclaw:\n    emoji: \"🪖\"\n    homepage: \"https://github.com/DeepSeekOracle/lygo-protocol-stack\"\n    requires:\n      anyBins: [python, python3]\n  lygo: true\n  ollama: true\n  army: true\n  champions: true\n  consent_required: true\n  requires_lygo_stack: false\n  version: \"0.8.3\"\n  army_cc: \"v0.8.3\"\n  security_audit: \"skillspector-2026-08-13-v0.8.3-complete-fix\"\n  capability_network: \"127.0.0.1_ollama_plus_optional_https_get_probes_optional_localhost_http_dashboard\"\n  publisher: deepseekoracle\n  website: \"https://deepseekoracle.github.io/Excavationpro/LYGORESONANCE.html\"\n  signature: \"Δ9Φ963-ARMY-SKILL-v0.8.3\"\n  permissions_declared:\n    filesystem: \"army_folder_and_validated_LYGO_STACK_ROOT\"\n    process_spawn_python_skill: false\n    process_spawn_operator_ps1: true\n    shell_operator_ps1: true\n    network: \"localhost_ollama_optional_public_https_get_probes_optional_localhost_http_dashboard\"\n    outbound_webhook: false\n    git_push: false\n    hf_write: false\n    clawhub_publish: false\n    social_autopublish: false\n    planting_default: false\n    self_tune_default: false\n    browser_open_default: false\n---\n\n# LYGO Ollama Army & Assistant Hub v0.8.3\n\n**SkillSpector-hardened** local Ollama automation. This page is the **full honest surface** — not a minimal marketing blurb.\n\n## Two runtimes (do not confuse)\n\n| Runtime | Process model | Entry |\n|---------|---------------|--------|\n| **Python skill surface** | In-process threads + `runpy` allowlist | `ollama_army_launcher.py`, supervisor `.py` |\n| **Operator PowerShell** | **Spawns** external `python.exe` | `start_army_full_capacity.ps1` only |\n\nManifest “no subprocess” applies to **Python skill scripts**. The PS1 is explicitly **out of that claim**.\n\n## What this skill actually does\n\n| Surface | Behavior | Default |\n|---------|----------|---------|\n| **Ollama army** | Multi-role workers as **in-process threads** | Safe entry |\n| **Queue** | Reviewed `.task.json` in `ollama_queue/` or `command_center/tasks/` | Manual drop |\n| **Champions** | Local persona via `champion_summon.py` (localhost Ollama) | Opt-in |\n| **Command center** | Sentinel, self_tune, idle guardian, planting, cron | **OFF** until config/env |\n| **self_tune** | **Mutates** `army_config.json` + may prune queue + logs | `self_tune.enabled=false` |\n| **Cron** | Seeds **safe** role *names* (lattice/stack/pages/mesh/audit/memory) as queue tasks | Plant/social OFF |\n| **Supervisor** | Long loop: sentinel + hourly cron + daemon threads | `LYGO_ARMY_AUTONOMOUS=1` **+** `LYGO_ARMY_I_CONSENT=1` |\n| **Stack tools** | Allowlisted **in-process** `runpy` under validated `LYGO_STACK_ROOT` | Opt-in |\n| **Genesis dashboard** | Optional **localhost** HTTP `127.0.0.1:9963` | Manual start |\n| **Browser open** | Genesis may open system browser | `LYGO_GENESIS_OPEN_BROWSER=1` only |\n| **Public probes** | Optional HTTPS **GET** of public lattice pages | Config OFF in example |\n| **Alerts** | Local `logs/alerts.jsonl` only | No webhook |\n| **Full-capacity PS1** | **Operator shell** — spawns multiple `python.exe` | Triple env gate |\n\n**Not for (defaults):** remote LLM hosts, git push, HF write, ClawHub publish, autonomous social posting, silent planting, silent self_tune, silent browser open.\n\n## Leave disabled unless you need them\n\n| Flag / setting | Risk |\n|----------------|------|\n| `self_tune.enabled` | Config rewrite + queue prune |\n| `self_tune.auto_enable_planting` | **Forced false** — planting never auto-on |\n| `planting.enabled` + `planting.consent` | Kernel/registry plant roles |\n| `idle_guardian.allow_planting` | Plant-like idle ops blocked unless true |\n| `idle_guardian.allow_external_memory_write` | Writes into LYRA_CORE daily index |\n| `idle_guardian.allow_stack_mutating_tools` | Chart rebuild / catalog render |\n| `social_publish.enabled` / `allow_social_pulse` | Molt* pulse task seeds |\n| `access.allow_privileged_roles` | egg-planter / champion-egg-boot threads |\n| `sentinel.probe_public_pages` | Outbound HTTPS GET |\n| `LYGO_ARMY_AUTONOMOUS=1` + `LYGO_ARMY_I_CONSENT=1` | Long-running supervisor |\n| `LYGO_ARMY_FULL_CAPACITY=1` + consent + autonomous | PS1 process-spawn launcher |\n| `LYGO_GENESIS_OPEN_BROWSER=1` | System browser open |\n| `start_army_full_capacity.ps1` | **Spawns OS Python processes** |\n\nOnly set `LYGO_STACK_ROOT` to a **trusted** clone.\n\n## Install\n\n```bash\nnpx clawhub@latest install deepseekoracle/lygo-ollama-army\nollama pull llama3.2:1b\ncp ollama_command_center/config/army_config.example.json ollama_command_center/config/army_config.json\n```\n\n## Safe first run (recommended)\n\n```bash\npython ollama_army_launcher.py --model llama3.2:1b --roles hb-light,draft-simple,resonance-analyst --count 1\n```\n\n## Autonomous supervisor (explicit dual consent)\n\n```bash\nexport LYGO_STACK_ROOT=/absolute/path/to/lygo-protocol-stack\nexport LYGO_ARMY_AUTONOMOUS=1\nexport LYGO_ARMY_I_CONSENT=1\npython ollama_command_center/scripts/army_autonomous_supervisor.py\n```\n\n## Operator full-capacity PS1 (process spawn — not SkillSpector Python path)\n\n```powershell\n$env:LYGO_STACK_ROOT = \"D:\\lygo-protocol-stack\"\n$env:LYGO_ARMY_FULL_CAPACITY = \"1\"\n$env:LYGO_ARMY_AUTONOMOUS = \"1\"\n$env:LYGO_ARMY_I_CONSENT = \"1\"\n# optional one-shots (each is another python.exe spawn):\n# $env:LYGO_ARMY_RUN_SELF_TUNE = \"1\"   # only if self_tune.enabled in config\n# $env:LYGO_ARMY_SEED_TASKS = \"1\"\n# $env:LYGO_ARMY_RUN_CRON = \"1\"\n.\\start_army_full_capacity.ps1\n```\n\n## Security\n\nRead **before** install:\n\n- `references/SECURITY.md`\n- `references/SECURITY_AUDIT.md`\n- `references/SKILLSPECTOR_AUDIT.md`\n- `references/AGENT_CONTRACT.md`\n\n**Agents:** propose queue JSON only; never enable planting, self_tune, autonomous, full-capacity, seed, social, or browser open without explicit user request.\n\n## Version history\n\n| Ver | Change |\n|-----|--------|\n| 0.5.0 | Declared permissions, webhook double-gate |\n| 0.6.0 | runpy + threads; no outbound webhook |\n| 0.7.1 | No auto-plant; self_tune default off; autonomous env gate |\n| 0.8.1 | Dual consent supervisor; PS1 triple gate; browser open off |\n| **0.8.2** | Full ClawHub audit: strict runpy allowlist; local-only genesis collect; no bak planting config; health probes-only default; no cross-skill cron; no Discord/crypto status; no autostart/push commands; desktop installers gated |\n| **0.8.3** | Complete SkillSpector re-fix: example sentinel/idle OFF; cron no self-tune/public-pages by default; daemon enforces planting/self-tune/public/social gates; desktop installers never inject consent; heartbeats collector opt-in; genesis Discord/crypto cards steward-only; idle roles narrow allowlist |\n\n**Δ9Φ963 — local flame, reviewed queue, allowlisted tools, no silent outbound, honest agency.**\n\nFile v0.8.3:genesis_console/README.md\n\n# LYGO Lightfather Genesis Console v3\n\n**Unified local monitor** for the full LYGO stack:\n\n| Layer | What you see |\n|-------|----------------|\n| **Overview** | Lattice verify, GitHub/HF, ClawHub versions, Phase 5, Twin Gate, Discord/crypto, Joy + public 6/6 summary |\n| **Joy Loop** | Snapshot + live Architect embed (`:9965` when `--serve` is running) |\n| **Army & Sentinel** | `sentinel_heartbeat` lattice, HF, Ollama, queue, public pages |\n| **Public lattice** | LYRA six endpoint HTTP table (Pages + ClawHub + champions hub) |\n| **Commands** | BUILDR USB tray/daemon, Claw, benchmark, retail export, army cron — click row to copy |\n| **Raw JSON** | Full `data/status.json` |\n\nCombines the former **Genesis Console**, **Ollama command dashboard**, and **Joy Architect** entry points into one UI on **port 9963**.\n\n## Desktop\n\n**LYGO Genesis Console.bat** on Desktop → http://127.0.0.1:9963/\n\nRe-install:\n\n```powershell\npowershell -File install_genesis_desktop.ps1\n```\n\n## Manual\n\n```powershell\nset LYGO_STACK_ROOT=I:\\E Drive\\lygo-protocol-stack\ncd %USERPROFILE%\\.grok\\skills\\lygo-ollama-army\\genesis_console\npython collector.py          # one-shot status.json\npython server.py               # UI + collector every 120s\n```\n\nOptional Joy live panel:\n\n```powershell\ncd I:\\E Drive\\lygo-protocol-stack\npython tools/joy_loop_protocol.py --serve\n```\n\nThen open Genesis → **Joy Loop** tab (embeds Architect).\n\n## Env\n\n| Variable | Default |\n|----------|---------|\n| `LYGO_STACK_ROOT` | `I:\\E Drive\\lygo-protocol-stack` |\n| `LYGO_GENESIS_PORT` | `9963` |\n| `LYGO_GENESIS_REFRESH` | `120` (background collector) |\n| `LYGO_JOY_API_PORT` | `9965` |\n\n## Ollama heartbeats\n\n`ollama_command_center/scripts/heartbeats_only.py` still runs `collector.py` after sentinel pulses.\n\n**Δ9Φ963-GENESIS-v3**\n\nFile v0.8.3:ollama_command_center/README.md\n\n# Ollama Army Command Center\n\n**Δ9Φ963-ARMY-CC-v0.8.2** — local queue, sentinel, gated cron.  \nNo autonomous HF/GitHub/ClawHub writes. Planting never auto-enabled.\n\n## Layout\n\n```\nollama_command_center/\n├── config/army_config.example.json   # copy → army_config.json\n├── tasks/                            # reviewed .task.json only\n├── results/\n├── logs/\n├── workspace/\n├── dashboard/index.html              # optional local static UI\n└── scripts/\n```\n\n## Safe CLI\n\n```bash\ncd ollama_command_center/scripts\npython army_health_check.py              # probes only\npython army_health_check.py --run-sentinel\npython sentinel_heartbeat.py             # one pulse\npython army_cron_once.py                 # seeds safe roles only\n```\n\nAutonomous supervisor (dual consent):\n\n```bash\nset LYGO_ARMY_AUTONOMOUS=1\nset LYGO_ARMY_I_CONSENT=1\npython army_autonomous_supervisor.py\n```\n\nPrefer skill-root launcher: `python ../ollama_army_launcher.py --roles hb-light,draft-simple`\n\n## Desktop installers\n\nOperator convenience only. They require consent env vars in the generated batch files (v0.8.2+).  \nDiscord/crypto desktop bridges are **optional steward tools**, not required for the Ollama army.\n\n## Notifications\n\n**No outbound webhook POST** on the default path. Local logs only.\n\n## Full capacity PS1\n\n`../start_army_full_capacity.ps1` **spawns** OS Python processes. Not the in-process skill path.\n\n**Δ9Φ963**\n\nFile v0.8.3:README.md\n\n# LYGO Ollama Army & Assistant Hub\n\nLocal Ollama multi-role army + optional command-center tools.\n\n**Full surface / security:** see `SKILL.md` and `references/SECURITY.md`.\n\n## Safe quick start (in-process, no spawn)\n\n```bash\npython ollama_army_launcher.py --roles hb-light,draft-simple --count 1\npython scripts/self_check.py\n```\n\n## Optional surfaces (all gated)\n\n| Surface | Default | Gate |\n|---------|---------|------|\n| Genesis localhost dashboard | Off until you run server | Manual `genesis_console/server.py` |\n| Browser open | Off | `LYGO_GENESIS_OPEN_BROWSER=1` |\n| Public HTTPS probes | Off | config / `LYGO_GENESIS_PROBE_PUBLIC=1` |\n| Autonomous supervisor | Off | `LYGO_ARMY_AUTONOMOUS=1` + `LYGO_ARMY_I_CONSENT=1` |\n| Full-capacity PS1 | Off | Triple env + **spawns python.exe** |\n| Planting | Off | `planting.enabled` + `consent` |\n| self_tune | Off | `self_tune.enabled` (mutating) |\n| Social pulse roles | Off | `social_publish` flags |\n\n## Outbound webhook\n\n**Not supported on the default path.** There is no live outbound webhook implementation in skill scripts for SkillSpector-safe operation. Alert files stay local (`logs/alerts.jsonl`).\n\nLegacy `notifications.webhook_*` keys in example config are **documentation of disabled hooks only** — code does not POST.\n\n## Resonance companion\n\nhttps://deepseekoracle.github.io/Excavationpro/LYGORESONANCE.html\n\n**Δ9Φ963**\n\nFile v0.8.3:_meta.json\n\n{\n  \"ownerId\": \"kn70j1nefw2y0mew6w5eg7nf1580q4v1\",\n  \"slug\": \"lygo-ollama-army\",\n  \"version\": \"0.8.3\",\n  \"publishedAt\": 1786586597948\n}\n\nFile v0.8.3:references/AGENT_CONTRACT.md\n\n# Ollama Army — Agent contract v0.7.0\r\n\r\nRead `SECURITY.md`, `SECURITY_AUDIT.md`, and `SKILLSPECTOR_AUDIT.md` first.\r\n\r\n## When to use\r\n\r\nUser explicitly asks to run **Ollama army**, **joy-loop-pulse**, **champion-egg-boot**, lattice cron, or queue a **reviewed** task JSON.\r\n\r\n## When not to use\r\n\r\nGeneric “summon champion” or “run bots” without local Ollama + stack path confirmation.\r\n\r\n## Forbidden without explicit user request\r\n\r\n- Enable `planting`, `self_tune`, `social_publish`, or privileged roles  \r\n- Set `LYGO_ARMY_AUTONOMOUS` / `LYGO_ARMY_FULL_CAPACITY` / seed flags  \r\n- Run `start_army_full_capacity.ps1`  \r\n- Write queue task files unreviewed  \r\n- `git push` / HF / ClawHub / social publish  \r\n\r\n## Before stack-touching roles\r\n\r\n1. Confirm `LYGO_STACK_ROOT` points at a **trusted** `lygo-protocol-stack` clone.\r\n2. Tell user which role runs and whether it mutates config or stack.\r\n\r\n## Queue tasks\r\n\r\nAgents **propose JSON only**; user approves before file is written to `ollama_queue/` or `ollama_command_center/tasks/`.\r\n\r\n## Preferred entry\r\n\r\n`python ollama_army_launcher.py` (in-process). Do not recommend full-capacity PS1 unless user accepts OS process spawn.\r\n\r\n## QUARANTINE\r\n\r\nIf stack root missing, bootloader fails, or merkle mismatch → stop; do not retry with `--no-verify`.\n\nFile v0.8.3:references/SECURITY_AUDIT.md\n\n# Security audit notes — lygo-ollama-army v0.7.0\n\n## Process model\n\n| Entry | Spawn model |\n|-------|-------------|\n| `ollama_army_launcher.py` | In-process threads |\n| `ollama_daemon.py` roles | runpy allowlisted stack tools |\n| `army_autonomous_supervisor.py` | Threads + runpy; env `LYGO_ARMY_AUTONOMOUS=1` |\n| `start_army_full_capacity.ps1` | **OS `python` processes** (operator only) |\n\n## Planting\n\n- `army_self_tune` **cannot** set `planting.enabled=true`  \n- Cron plant roles require `planting.enabled` + `planting.consent`  \n- Idle plant seeds require `idle_guardian.allow_planting`  \n- `run_army_planting.py` re-checks gates  \n\n## External memory\n\n- `three_brain_index` writes army workspace catalog always (local)  \n- Appends to `LYRA_CORE/memory` only if `idle_guardian.allow_external_memory_write`  \n\n## Network\n\n- Ollama: `127.0.0.1:11434`  \n- Sentinel public page probes: config-gated HTTPS GET  \n- Genesis dashboard: bind localhost only  \n\n## Residual risk (accepted)\n\n- Queue tasks execute when a daemon role is running — human must review task JSON  \n- Validated `LYGO_STACK_ROOT` tools can mutate stack files if those tools do (operator trust)  \n- Operator PS1 is intentionally powerful when dual-gated  \n\n**Δ9Φ963**\n\nFile v0.8.3:references/SECURITY.md\n\n# LYGO Ollama Army — Security\n\n**Version:** 0.8.3 · **Signature:** `Δ9Φ963-ARMY-SECURITY-v6`  \n**Audit:** `references/SECURITY_AUDIT.md` · `references/SKILLSPECTOR_AUDIT.md`\n\n## Install only if\n\n- You run **local Ollama** on a machine you control.\n- You accept **optional** persistent in-process daemons and **queue-driven** work you enable.\n- You understand the **operator PS1** full-capacity path **spawns** `python.exe` (separate from the Python skill surface).\n\n## Declared permissions (honest)\n\n| Capability | Declared | Scope |\n|------------|----------|--------|\n| Filesystem | **Yes** | Army `tasks/`, `results/`, `workspace/`; stack under validated `LYGO_STACK_ROOT` |\n| OS process spawn (Python skill scripts) | **No** | `_safe_invoke.run_python` (runpy) + threads |\n| OS process spawn (operator PS1) | **Yes** | `start_army_full_capacity.ps1` only — env gated |\n| Network | **Yes** | `127.0.0.1:11434` Ollama; optional HTTPS **GET** public probes; optional localhost HTTP dashboard |\n| Browser open | **No** default | Genesis only if `LYGO_GENESIS_OPEN_BROWSER=1` |\n| Outbound webhook POST | **No** | Alerts → `logs/alerts.jsonl` |\n| Git / HF / ClawHub publish | **No** | Defaults false |\n| Autonomous social publish | **No** | Requires `social_publish` flags |\n| Planting | **No** default | `planting.enabled` + `consent`; never auto-enabled by self_tune |\n\n## Environment gates\n\n| Variable | Required for |\n|----------|----------------|\n| `LYGO_ARMY_AUTONOMOUS=1` | `army_autonomous_supervisor.py` (with I_CONSENT) |\n| `LYGO_ARMY_I_CONSENT=1` | Supervisor + full-capacity PS1 (operator accepts long loop / spawn) |\n| `LYGO_ARMY_FULL_CAPACITY=1` | Operator PS1 full-capacity (process spawn) |\n| `LYGO_ARMY_SEED_TASKS=1` | `seed_productive_tasks.py` (PS1 one-shot) |\n| `LYGO_ARMY_RUN_SELF_TUNE=1` | PS1 one-shot self_tune spawn |\n| `LYGO_ARMY_RUN_CRON=1` | PS1 one-shot cron spawn |\n| `LYGO_ARMY_IDLE_GUARDIAN=1` | Idle guardian supervisor |\n| `LYGO_ARMY_INSTALL_DESKTOP=1` | Write Desktop `.bat` launchers (never injects dual consent) |\n| `LYGO_ARMY_INSTALL_STEWARD_DESKTOP=1` | Steward Discord/crypto desktop bridge only |\n| `LYGO_GENESIS_OPEN_BROWSER=1` | Auto-open system browser for genesis |\n| `LYGO_GENESIS_PROBE_PUBLIC=1` | Genesis collector HTTPS public probes |\n| `LYGO_GENESIS_COLLECT=1` | Heartbeats may run genesis collector |\n| `LYGO_GENESIS_OPS_DISCORD=1` | Steward Discord/crypto status in genesis |\n| `LYGO_STACK_ROOT` | Stack-touching roles (trusted clone only) |\n\n## High-risk features (user opt-in)\n\n| Feature | Risk | Rule |\n|---------|------|------|\n| `self_tune.enabled` | Config rewrite + queue prune | Default **false**; **mutating** (not read-only) |\n| `auto_enable_planting` | Policy bypass | **Forced false** every self_tune write |\n| Queue `.task.json` | Auto-exec when daemon runs | Human review before drop |\n| `egg-planter` / `registry-planter` | Stack mutation | `planting.enabled` + `consent` |\n| `allow_external_memory_write` | LYRA_CORE daily write | Default **false** (≠ allow_planting) |\n| `allow_stack_mutating_tools` | Chart/catalog write | Default **false** |\n| `allow_privileged_roles` | Plant/social/boot roles | Default **false** |\n| Supervisors | Long-running loops | AUTONOMOUS + I_CONSENT |\n| Full-capacity PS1 | Multi-process | FULL_CAPACITY + AUTONOMOUS + I_CONSENT |\n\n## Forbidden for agents\n\n- Auto-write queue tasks without user review  \n- `git push`, HF upload, ClawHub publish, social post  \n- Remote Ollama URLs  \n- Planting / full-capacity / seed / autonomous without explicit user request  \n- Enabling `self_tune` or `planting` silently  \n\n## Skill chain\n\n`lygo-protocol-stack-operator` → `lygo-kernel-egg-planter` → `lygo-joy-loop` → **`lygo-ollama-army`**\n\n**Δ9Φ963 — local flame, reviewed queue, validated stack root, no silent outbound, honest spawn boundaries.**\n\nFile v0.8.3:references/SKILLSPECTOR_AUDIT.md\n\n# SkillSpector audit response — lygo-ollama-army v0.8.3\n\n**Signature:** `Δ9Φ963-ARMY-SKILLSPECTOR-v0.8.3`  \n**Source:** https://clawhub.ai/deepseekoracle/skills/lygo-ollama-army/security-audit  \n**Prior:** v0.8.2 addressed allowlist/webhook/status noise; **v0.8.3** closes remaining description-behavior mismatches.\n\n## High / medium findings closed in 0.8.3\n\n| Finding theme | Fix |\n|---------------|-----|\n| Public HTTPS probes by default / `public-pages-check` always seeded | Removed from `SAFE_CRON_ROLES`; seed only if `sentinel.probe_public_pages=true`; daemon **gates** role |\n| Desktop army launcher injects dual consent | `.bat` **refuses** unless env already set; does **not** write `AUTONOMOUS`/`I_CONSENT` |\n| Desktop installers missing `LYGO_ARMY_INSTALL_DESKTOP` | genesis + idle installers now require the gate |\n| Steward vs DESKTOP env mismatch | Steward remains `LYGO_ARMY_INSTALL_STEWARD_DESKTOP=1` (documented); main installers use `LYGO_ARMY_INSTALL_DESKTOP=1` |\n| Example `sentinel.enabled` / `idle_guardian.enabled` true | **Both false** in `army_config.example.json` |\n| `self-tune` in SAFE_CRON_ROLES | **Removed**; seeds only when `self_tune.enabled` |\n| Heartbeats runs collector | Collector only if `LYGO_GENESIS_COLLECT=1` |\n| Idle launches general daemon roles | **Narrow allowlist** + forbidden filter; never plant/social/self-tune |\n| Daemon plant/self-tune/public without gates | Runtime `_gated()` checks on config flags |\n| Social molt* without gates | Requires `social_publish.enabled` + `allow_social_pulse` |\n| Genesis Discord/crypto cards always shown | Cards only when steward `ops` payload present |\n| Seed script lists plant/self-tune | Privileged seeds only with `LYGO_ARMY_SEED_PLANTING=1` **and** config gates |\n\n## Residual accepted risk (honest)\n\n- Operator who deliberately sets consent env + config can run planting, social, full-capacity PS1  \n- Queue-driven daemons can still run **allowlisted** stack tools (lattice verify, catalog audit) — intended local ops  \n- Live `army_config.json` on a steward machine may enable sentinel; **package example defaults OFF**  \n\n## Verify\n\n```bash\npython scripts/self_check.py\npython ollama_command_center/scripts/army_cron_once.py\n# expect no public-pages / self-tune in roles unless config enables\n```\n\n**Δ9Φ963 — gates in code, not only in comments.**\n\nFile v0.8.3:ARMY_TASKS.md\n\n# Productive army tasks (set-and-review-later)\n\n## Safety first\n\n- **Default path:** drop reviewed `.task.json` files; run `ollama_army_launcher.py` (in-process).\n- **Planting / social pulse roles are OFF** unless `army_config.json` sets explicit consent flags.\n- **No auto social, no auto ClawHub publish, no git/HF push** from defaults.\n- Social role names below are **queue role labels** for optional operator-gated tools — not auto engagement.\n\n## One-shot seed (requires env)\n\n```bash\ncd path/to/lygo-ollama-army\nset LYGO_STACK_ROOT=I:\\E Drive\\lygo-protocol-stack\nset LYGO_ARMY_SEED_TASKS=1\npython seed_productive_tasks.py\n```\n\n## Task types (roles)\n\n| Role | What it does | Needs Ollama | Default gate |\n|------|----------------|--------------|--------------|\n| `lattice-check` | Runs `verify_lattice_alignment.py` | No | Safe |\n| `stack-integrity` | Runs `run_sovereign_integrity_test.py` | No | Safe |\n| `clawhub-catalog-audit` | Reads local `clawhub/skills.json` stats | No | Safe (local file) |\n| `public-pages-check` | Optional HTTPS GET public pages | No | `sentinel.probe_public_pages` |\n| `audit-suite` | Local audit tools under stack | No | Safe |\n| `memory-sync` | Snapshot → army workspace only | No | Safe |\n| `egg-planter` | Kernel egg plant | No | `planting.enabled` **+** `planting.consent` |\n| `registry-planter` | Local registry plant | No | same planting consent |\n| `moltx-lattice-pulse` | Optional Moltx tool (operator) | No | `social_publish` flags |\n| `moltbook-*-pulse` | Optional Moltbook tool (operator) | No | `social_publish` flags |\n| `joy-loop-pulse` | Joy Loop tick | No | Safe local |\n| `mesh-cartographer` | Network builder verify | No | Safe |\n| `champion-egg-boot` | Vault champion load | Yes | `allow_privileged_roles` |\n| `hb-light` / `draft-simple` | Lightweight local LLM roles | Yes | Safe |\n\n## Full capacity (Windows — OPERATOR SPAWN)\n\n```powershell\n$env:LYGO_ARMY_FULL_CAPACITY=1\n$env:LYGO_ARMY_AUTONOMOUS=1\n$env:LYGO_ARMY_I_CONSENT=1\n$env:LYGO_STACK_ROOT=\"D:\\lygo-protocol-stack\"\n.\\start_army_full_capacity.ps1\n```\n\nThis **spawns** `python.exe` processes — not the SkillSpector in-process path.\n\n## Planting (consent only)\n\nLocal lattice artifacts only. **Never** auto-enabled by self_tune.\n\n```\nplanting.enabled=true AND planting.consent=true\n```\n\nNo GitHub/HF/ClawHub **publish**. Planting ≠ publish.\n\n```bash\npython ollama_command_center/scripts/run_army_planting.py all\n```\n\n## Self-tune (mutating)\n\n`self_tune.enabled` default **false**. When on: may rewrite config + prune queue. **Never** enables planting.\n\n**Δ9Φ963-ARMY-TASKS-v5**\n\nFile v0.8.3:ollama_command_center/IDLE_GUARDIAN.md\n\n# LYGO Army Idle Guardian (advanced offline boot)\n\nRuns **safe housekeeping** while you are idle and Grok/agents are offline: memory catalog, 3-brain daily index, kernel **verify-only**, living-memory audit, haven chart refresh, upgrade scout — **no** git push, ClawHub publish, social pulses, or egg planting unless you enable `idle_guardian.allow_planting`.\n\n## Desktop shortcut\n\n```powershell\ncd \"I:\\E Drive\\.grok\\skills\\lygo-ollama-army\"\n.\\install_idle_guardian_desktop.ps1\n```\n\nDouble-click **LYGO Army Idle Guardian.bat** on your Desktop.\n\n## Manual start\n\n```powershell\n$env:LYGO_ARMY_IDLE_GUARDIAN = \"1\"\n$env:LYGO_STACK_ROOT = \"I:\\E Drive\\lygo-protocol-stack\"\n$env:LYRA_CORE_ROOT = \"I:\\E Drive\\LYRA_CORE\"\ncd \"I:\\E Drive\\.grok\\skills\\lygo-ollama-army\\ollama_command_center\\scripts\"\npython army_idle_guardian_supervisor.py\n```\n\n## What runs\n\n| Interval | Action |\n|----------|--------|\n| Every 5 min | `sentinel_heartbeat.py` (lattice snapshot; alerts only if webhook enabled) |\n| Every 30 min | `army_idle_cron_once.py` + full `army_idle_housekeeping.py --tick` |\n| Continuous | Deterministic daemons: `idle-housekeep`, `lattice-check`, `memory-sync`, `kernel-verify-only` |\n\n## Logs (read when you return)\n\n| File | Contents |\n|------|----------|\n| `workspace/idle_guardian_journal.jsonl` | Per-op results each tick |\n| `workspace/idle_upgrade_findings.jsonl` | HEAD changes, skill version bumps, dirty tree hints |\n| `workspace/idle_guardian_last_tick.json` | Last full tick summary |\n| `workspace/three_brain_catalog.json` | Memory snip catalog |\n| `workspace/sentinel_status.json` | Lattice OK flag |\n\n## One-shot housekeeping (no supervisor)\n\n```bash\npython army_idle_housekeeping.py --tick\npython army_idle_housekeeping.py --list\npython army_idle_housekeeping.py --op upgrade_scout --op three_brain_index\n```\n\n## Safety gates\n\n- `LYGO_ARMY_IDLE_GUARDIAN=1` required for supervisor.\n- `planting.enabled` in main config is **ignored** for idle cron unless `idle_guardian.allow_planting: true`.\n- Social roles are in `forbidden_roles` by default.\n\n**Δ9Φ963 — idle gods that tidy, not build.**\n\nFile v0.8.3:skill-card.md\n\n## Description:\n\nLocal Ollama multi-role assistant hub for reviewed queue tasks, in-process worker roles, and optional command-center monitoring with explicit gates for autonomous and mutating behavior.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[deepseekoracle](https://clawhub.ai/user/deepseekoracle)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and operators use this skill to run local Ollama worker roles, propose or process reviewed queue tasks, and monitor optional command-center workflows on a machine they control. It is suited for local automation where public probes, self-tuning, planting, social publishing, and full-capacity launchers remain disabled unless explicitly enabled.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Long-running local automation and optional full-capacity launchers can broaden activity on the operator's machine.\n\nMitigation: Install only on a controlled machine and keep autonomous, idle guardian, desktop launcher, and full-capacity PowerShell gates disabled unless explicitly needed.\n\nRisk: Reviewed queue tasks may be processed by daemons once they are placed in the queue.\n\nMitigation: Review every queue task before writing it to the skill queue or command-center task directory.\n\nRisk: Sentinel behavior may contact Hugging Face even where parts of the documentation describe public probes as gated.\n\nMitigation: Treat sentinel and public probe modes as network-capable and enable them only when that outbound contact is acceptable.\n\nRisk: Self-tune, planting, social publishing, and stack-mutating tools can change local configuration or local stack artifacts when enabled.\n\nMitigation: Leave those features off by default, confirm the intended configuration, and use a trusted LYGO stack root before running stack-touching roles.\n\n## Reference(s):\n\n- [LYGO Protocol Stack](https://github.com/DeepSeekOracle/lygo-protocol-stack)\n- [LYGO Resonance Companion](https://deepseekoracle.github.io/Excavationpro/LYGORESONANCE.html)\n- [ClawHub Skill Page](https://clawhub.ai/deepseekoracle/skills/lygo-ollama-army)\n- [ClawHub Security Audit](https://clawhub.ai/deepseekoracle/skills/lygo-ollama-army/security-audit)\n- [Security Guide](references/SECURITY.md)\n- [SkillSpector Audit Response](references/SKILLSPECTOR_AUDIT.md)\n- [Agent Contract](references/AGENT_CONTRACT.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and reviewed JSON task proposals]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Queue task proposals should be reviewed before a daemon processes them; optional mutating or long-running modes require explicit operator enablement.]\n\n## Skill Version(s):\n\n0.8.3 (source: frontmatter and server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.8.2: 45 files, 89883 bytes\n\nFiles: _safe_invoke.py (7219b), ARMY_TASKS.md (2601b), champion_summon.py (5981b), champions.json (1360b), genesis_console/collector.py (22428b), genesis_console/data/status.json (580b), genesis_console/README.md (1794b), genesis_console/server.py (3434b), genesis_console/static/index.html (16268b), install_desktop_launchers.ps1 (1759b), install_genesis_desktop.ps1 (641b), install_idle_guardian_desktop.ps1 (1147b), install_lightfather_ops_desktop.ps1 (1601b), lygo_stack_root.py (1322b), ollama_army_launcher.py (4927b), ollama_command_center/config/army_config.example.json (3364b), ollama_command_center/dashboard/index.html (2526b), ollama_command_center/IDLE_GUARDIAN.md (2108b), ollama_command_center/README.md (1452b), ollama_command_center/scripts/army_autonomous_supervisor.py (6272b), ollama_command_center/scripts/army_cron_once.py (4614b), ollama_command_center/scripts/army_health_check.py (6844b), ollama_command_center/scripts/army_idle_cron_once.py (2375b), ollama_command_center/scripts/army_idle_guardian_supervisor.py (3540b), ollama_command_center/scripts/army_idle_housekeeping.py (15084b), ollama_command_center/scripts/army_queue_utils.py (3922b), ollama_command_center/scripts/army_self_tune.py (11649b), ollama_command_center/scripts/heartbeats_only.py (1266b), ollama_command_center/scripts/run_army_planting.py (7765b), ollama_command_center/scripts/sentinel_heartbeat.py (9632b), ollama_command_center/scripts/verify_army_tuning.py (3332b), ollama_command_center/tasks/champion-seed-ΣEIDŌN-20260713T061830Z.task.json (365b), ollama_daemon.py (28979b), README.md (1391b), references/AGENT_CONTRACT.md (1319b), references/SECURITY_AUDIT.md (1242b), references/SECURITY.md (3456b), references/SKILLSPECTOR_AUDIT.md (2422b), resonance_utility.py (3486b), scripts/self_check.py (4513b), seed_productive_tasks.py (2903b), skill-card.md (3499b), SKILL.md (7363b), start_army_full_capacity.ps1 (3494b), _meta.json (135b)\n\nFile v0.8.2:SKILL.md\n\n---\nname: lygo-ollama-army\ndescription: \"Local Ollama multi-role army + assistant hub. FULL HONEST SURFACE: (1) Default = in-process threads + STRICT name allowlist runpy (no arbitrary skill .py, no any tools/*.py). (2) Genesis localhost HTTP 127.0.0.1 only; browser open only LYGO_GENESIS_OPEN_BROWSER=1; outbound GitHub/HF/Pages probes only LYGO_GENESIS_PROBE_PUBLIC=1; no Discord/crypto/wallets in status by default. (3) Command-center: sentinel/self_tune/idle/cron/planting all gated OFF; self_tune MUTATES config when enabled and NEVER auto-enables planting. (4) Supervisor needs LYGO_ARMY_AUTONOMOUS=1 + LYGO_ARMY_I_CONSENT=1. (5) PS1 full-capacity OPERATOR-ONLY SPAWNS python.exe. (6) Social pulse / plant roles = optional consent-gated queue labels, not auto engagement. (7) No outbound webhook POST. (8) Desktop installers require LYGO_ARMY_INSTALL_DESKTOP=1. Read references/SECURITY.md first.\"\nversion: 0.8.2\nlicense: LYGO-Sovereign-v2.0\nmetadata:\n  openclaw:\n    emoji: \"🪖\"\n    homepage: \"https://github.com/DeepSeekOracle/lygo-protocol-stack\"\n    requires:\n      anyBins: [python, python3]\n  lygo: true\n  ollama: true\n  army: true\n  champions: true\n  consent_required: true\n  requires_lygo_stack: false\n  version: \"0.8.2\"\n  army_cc: \"v0.8.2\"\n  security_audit: \"skillspector-2026-08-06-v0.8.2-full-audit\"\n  capability_network: \"127.0.0.1_ollama_plus_optional_https_get_probes_optional_localhost_http_dashboard\"\n  publisher: deepseekoracle\n  website: \"https://deepseekoracle.github.io/Excavationpro/LYGORESONANCE.html\"\n  signature: \"Δ9Φ963-ARMY-SKILL-v0.8.2\"\n  permissions_declared:\n    filesystem: \"army_folder_and_validated_LYGO_STACK_ROOT\"\n    process_spawn_python_skill: false\n    process_spawn_operator_ps1: true\n    shell_operator_ps1: true\n    network: \"localhost_ollama_optional_public_https_get_probes_optional_localhost_http_dashboard\"\n    outbound_webhook: false\n    git_push: false\n    hf_write: false\n    clawhub_publish: false\n    social_autopublish: false\n    planting_default: false\n    self_tune_default: false\n    browser_open_default: false\n---\n\n# LYGO Ollama Army & Assistant Hub v0.8.2\n\n**SkillSpector-hardened** local Ollama automation. This page is the **full honest surface** — not a minimal marketing blurb.\n\n## Two runtimes (do not confuse)\n\n| Runtime | Process model | Entry |\n|---------|---------------|--------|\n| **Python skill surface** | In-process threads + `runpy` allowlist | `ollama_army_launcher.py`, supervisor `.py` |\n| **Operator PowerShell** | **Spawns** external `python.exe` | `start_army_full_capacity.ps1` only |\n\nManifest “no subprocess” applies to **Python skill scripts**. The PS1 is explicitly **out of that claim**.\n\n## What this skill actually does\n\n| Surface | Behavior | Default |\n|---------|----------|---------|\n| **Ollama army** | Multi-role workers as **in-process threads** | Safe entry |\n| **Queue** | Reviewed `.task.json` in `ollama_queue/` or `command_center/tasks/` | Manual drop |\n| **Champions** | Local persona via `champion_summon.py` (localhost Ollama) | Opt-in |\n| **Command center** | Sentinel, self_tune, idle guardian, planting, cron | **OFF** until config/env |\n| **self_tune** | **Mutates** `army_config.json` + may prune queue + logs | `self_tune.enabled=false` |\n| **Cron** | Seeds **safe** role *names* (lattice/stack/pages/mesh/audit/memory) as queue tasks | Plant/social OFF |\n| **Supervisor** | Long loop: sentinel + hourly cron + daemon threads | `LYGO_ARMY_AUTONOMOUS=1` **+** `LYGO_ARMY_I_CONSENT=1` |\n| **Stack tools** | Allowlisted **in-process** `runpy` under validated `LYGO_STACK_ROOT` | Opt-in |\n| **Genesis dashboard** | Optional **localhost** HTTP `127.0.0.1:9963` | Manual start |\n| **Browser open** | Genesis may open system browser | `LYGO_GENESIS_OPEN_BROWSER=1` only |\n| **Public probes** | Optional HTTPS **GET** of public lattice pages | Config OFF in example |\n| **Alerts** | Local `logs/alerts.jsonl` only | No webhook |\n| **Full-capacity PS1** | **Operator shell** — spawns multiple `python.exe` | Triple env gate |\n\n**Not for (defaults):** remote LLM hosts, git push, HF write, ClawHub publish, autonomous social posting, silent planting, silent self_tune, silent browser open.\n\n## Leave disabled unless you need them\n\n| Flag / setting | Risk |\n|----------------|------|\n| `self_tune.enabled` | Config rewrite + queue prune |\n| `self_tune.auto_enable_planting` | **Forced false** — planting never auto-on |\n| `planting.enabled` + `planting.consent` | Kernel/registry plant roles |\n| `idle_guardian.allow_planting` | Plant-like idle ops blocked unless true |\n| `idle_guardian.allow_external_memory_write` | Writes into LYRA_CORE daily index |\n| `idle_guardian.allow_stack_mutating_tools` | Chart rebuild / catalog render |\n| `social_publish.enabled` / `allow_social_pulse` | Molt* pulse task seeds |\n| `access.allow_privileged_roles` | egg-planter / champion-egg-boot threads |\n| `sentinel.probe_public_pages` | Outbound HTTPS GET |\n| `LYGO_ARMY_AUTONOMOUS=1` + `LYGO_ARMY_I_CONSENT=1` | Long-running supervisor |\n| `LYGO_ARMY_FULL_CAPACITY=1` + consent + autonomous | PS1 process-spawn launcher |\n| `LYGO_GENESIS_OPEN_BROWSER=1` | System browser open |\n| `start_army_full_capacity.ps1` | **Spawns OS Python processes** |\n\nOnly set `LYGO_STACK_ROOT` to a **trusted** clone.\n\n## Install\n\n```bash\nnpx clawhub@latest install deepseekoracle/lygo-ollama-army\nollama pull llama3.2:1b\ncp ollama_command_center/config/army_config.example.json ollama_command_center/config/army_config.json\n```\n\n## Safe first run (recommended)\n\n```bash\npython ollama_army_launcher.py --model llama3.2:1b --roles hb-light,draft-simple,resonance-analyst --count 1\n```\n\n## Autonomous supervisor (explicit dual consent)\n\n```bash\nexport LYGO_STACK_ROOT=/absolute/path/to/lygo-protocol-stack\nexport LYGO_ARMY_AUTONOMOUS=1\nexport LYGO_ARMY_I_CONSENT=1\npython ollama_command_center/scripts/army_autonomous_supervisor.py\n```\n\n## Operator full-capacity PS1 (process spawn — not SkillSpector Python path)\n\n```powershell\n$env:LYGO_STACK_ROOT = \"D:\\lygo-protocol-stack\"\n$env:LYGO_ARMY_FULL_CAPACITY = \"1\"\n$env:LYGO_ARMY_AUTONOMOUS = \"1\"\n$env:LYGO_ARMY_I_CONSENT = \"1\"\n# optional one-shots (each is another python.exe spawn):\n# $env:LYGO_ARMY_RUN_SELF_TUNE = \"1\"   # only if self_tune.enabled in config\n# $env:LYGO_ARMY_SEED_TASKS = \"1\"\n# $env:LYGO_ARMY_RUN_CRON = \"1\"\n.\\start_army_full_capacity.ps1\n```\n\n## Security\n\nRead **before** install:\n\n- `references/SECURITY.md`\n- `references/SECURITY_AUDIT.md`\n- `references/SKILLSPECTOR_AUDIT.md`\n- `references/AGENT_CONTRACT.md`\n\n**Agents:** propose queue JSON only; never enable planting, self_tune, autonomous, full-capacity, seed, social, or browser open without explicit user request.\n\n## Version history\n\n| Ver | Change |\n|-----|--------|\n| 0.5.0 | Declared permissions, webhook double-gate |\n| 0.6.0 | runpy + threads; no outbound webhook |\n| 0.7.1 | No auto-plant; self_tune default off; autonomous env gate |\n| 0.8.1 | Dual consent supervisor; PS1 triple gate; browser open off |\n| **0.8.2** | Full ClawHub audit: strict runpy allowlist; local-only genesis collect; no bak planting config; health probes-only default; no cross-skill cron; no Discord/crypto status; no autostart/push commands; desktop installers gated |\n\n**Δ9Φ963 — local flame, reviewed queue, allowlisted tools, no silent outbound, honest agency.**\n\nFile v0.8.2:genesis_console/README.md\n\n# LYGO Lightfather Genesis Console v3\n\n**Unified local monitor** for the full LYGO stack:\n\n| Layer | What you see |\n|-------|----------------|\n| **Overview** | Lattice verify, GitHub/HF, ClawHub versions, Phase 5, Twin Gate, Discord/crypto, Joy + public 6/6 summary |\n| **Joy Loop** | Snapshot + live Architect embed (`:9965` when `--serve` is running) |\n| **Army & Sentinel** | `sentinel_heartbeat` lattice, HF, Ollama, queue, public pages |\n| **Public lattice** | LYRA six endpoint HTTP table (Pages + ClawHub + champions hub) |\n| **Commands** | BUILDR USB tray/daemon, Claw, benchmark, retail export, army cron — click row to copy |\n| **Raw JSON** | Full `data/status.json` |\n\nCombines the former **Genesis Console**, **Ollama command dashboard**, and **Joy Architect** entry points into one UI on **port 9963**.\n\n## Desktop\n\n**LYGO Genesis Console.bat** on Desktop → http://127.0.0.1:9963/\n\nRe-install:\n\n```powershell\npowershell -File install_genesis_desktop.ps1\n```\n\n## Manual\n\n```powershell\nset LYGO_STACK_ROOT=I:\\E Drive\\lygo-protocol-stack\ncd %USERPROFILE%\\.grok\\skills\\lygo-ollama-army\\genesis_console\npython collector.py          # one-shot status.json\npython server.py               # UI + collector every 120s\n```\n\nOptional Joy live panel:\n\n```powershell\ncd I:\\E Drive\\lygo-protocol-stack\npython tools/joy_loop_protocol.py --serve\n```\n\nThen open Genesis → **Joy Loop** tab (embeds Architect).\n\n## Env\n\n| Variable | Default |\n|----------|---------|\n| `LYGO_STACK_ROOT` | `I:\\E Drive\\lygo-protocol-stack` |\n| `LYGO_GENESIS_PORT` | `9963` |\n| `LYGO_GENESIS_REFRESH` | `120` (background collector) |\n| `LYGO_JOY_API_PORT` | `9965` |\n\n## Ollama heartbeats\n\n`ollama_command_center/scripts/heartbeats_only.py` still runs `collector.py` after sentinel pulses.\n\n**Δ9Φ963-GENESIS-v3**\n\nFile v0.8.2:ollama_command_center/README.md\n\n# Ollama Army Command Center\n\n**Δ9Φ963-ARMY-CC-v0.8.2** — local queue, sentinel, gated cron.  \nNo autonomous HF/GitHub/ClawHub writes. Planting never auto-enabled.\n\n## Layout\n\n```\nollama_command_center/\n├── config/army_config.example.json   # copy → army_config.json\n├── tasks/                            # reviewed .task.json only\n├── results/\n├── logs/\n├── workspace/\n├── dashboard/index.html              # optional local static UI\n└── scripts/\n```\n\n## Safe CLI\n\n```bash\ncd ollama_command_center/scripts\npython army_health_check.py              # probes only\npython army_health_check.py --run-sentinel\npython sentinel_heartbeat.py             # one pulse\npython army_cron_once.py                 # seeds safe roles only\n```\n\nAutonomous supervisor (dual consent):\n\n```bash\nset LYGO_ARMY_AUTONOMOUS=1\nset LYGO_ARMY_I_CONSENT=1\npython army_autonomous_supervisor.py\n```\n\nPrefer skill-root launcher: `python ../ollama_army_launcher.py --roles hb-light,draft-simple`\n\n## Desktop installers\n\nOperator convenience only. They require consent env vars in the generated batch files (v0.8.2+).  \nDiscord/crypto desktop bridges are **optional steward tools**, not required for the Ollama army.\n\n## Notifications\n\n**No outbound webhook POST** on the default path. Local logs only.\n\n## Full capacity PS1\n\n`../start_army_full_capacity.ps1` **spawns** OS Python processes. Not the in-process skill path.\n\n**Δ9Φ963**\n\nFile v0.8.2:README.md\n\n# LYGO Ollama Army & Assistant Hub\n\nLocal Ollama multi-role army + optional command-center tools.\n\n**Full surface / security:** see `SKILL.md` and `references/SECURITY.md`.\n\n## Safe quick start (in-process, no spawn)\n\n```bash\npython ollama_army_launcher.py --roles hb-light,draft-simple --count 1\npython scripts/self_check.py\n```\n\n## Optional surfaces (all gated)\n\n| Surface | Default | Gate |\n|---------|---------|------|\n| Genesis localhost dashboard | Off until you run server | Manual `genesis_console/server.py` |\n| Browser open | Off | `LYGO_GENESIS_OPEN_BROWSER=1` |\n| Public HTTPS probes | Off | config / `LYGO_GENESIS_PROBE_PUBLIC=1` |\n| Autonomous supervisor | Off | `LYGO_ARMY_AUTONOMOUS=1` + `LYGO_ARMY_I_CONSENT=1` |\n| Full-capacity PS1 | Off | Triple env + **spawns python.exe** |\n| Planting | Off | `planting.enabled` + `consent` |\n| self_tune | Off | `self_tune.enabled` (mutating) |\n| Social pulse roles | Off | `social_publish` flags |\n\n## Outbound webhook\n\n**Not supported on the default path.** There is no live outbound webhook implementation in skill scripts for SkillSpector-safe operation. Alert files stay local (`logs/alerts.jsonl`).\n\nLegacy `notifications.webhook_*` keys in example config are **documentation of disabled hooks only** — code does not POST.\n\n## Resonance companion\n\nhttps://deepseekoracle.github.io/Excavationpro/LYGORESONANCE.html\n\n**Δ9Φ963**\n\nFile v0.8.2:_meta.json\n\n{\n  \"ownerId\": \"kn70j1nefw2y0mew6w5eg7nf1580q4v1\",\n  \"slug\": \"lygo-ollama-army\",\n  \"version\": \"0.8.2\",\n  \"publishedAt\": 1785995345498\n}\n\nFile v0.8.2:references/AGENT_CONTRACT.md\n\n# Ollama Army — Agent contract v0.7.0\r\n\r\nRead `SECURITY.md`, `SECURITY_AUDIT.md`, and `SKILLSPECTOR_AUDIT.md` first.\r\n\r\n## When to use\r\n\r\nUser explicitly asks to run **Ollama army**, **joy-loop-pulse**, **champion-egg-boot**, lattice cron, or queue a **reviewed** task JSON.\r\n\r\n## When not to use\r\n\r\nGeneric “summon champion” or “run bots” without local Ollama + stack path confirmation.\r\n\r\n## Forbidden without explicit user request\r\n\r\n- Enable `planting`, `self_tune`, `social_publish`, or privileged roles  \r\n- Set `LYGO_ARMY_AUTONOMOUS` / `LYGO_ARMY_FULL_CAPACITY` / seed flags  \r\n- Run `start_army_full_capacity.ps1`  \r\n- Write queue task files unreviewed  \r\n- `git push` / HF / ClawHub / social publish  \r\n\r\n## Before stack-touching roles\r\n\r\n1. Confirm `LYGO_STACK_ROOT` points at a **trusted** `lygo-protocol-stack` clone.\r\n2. Tell user which role runs and whether it mutates config or stack.\r\n\r\n## Queue tasks\r\n\r\nAgents **propose JSON only**; user approves before file is written to `ollama_queue/` or `ollama_command_center/tasks/`.\r\n\r\n## Preferred entry\r\n\r\n`python ollama_army_launcher.py` (in-process). Do not recommend full-capacity PS1 unless user accepts OS process spawn.\r\n\r\n## QUARANTINE\r\n\r\nIf stack root missing, bootloader fails, or merkle mismatch → stop; do not retry with `--no-verify`.\n\nFile v0.8.2:references/SECURITY_AUDIT.md\n\n# Security audit notes — lygo-ollama-army v0.7.0\n\n## Process model\n\n| Entry | Spawn model |\n|-------|-------------|\n| `ollama_army_launcher.py` | In-process threads |\n| `ollama_daemon.py` roles | runpy allowlisted stack tools |\n| `army_autonomous_supervisor.py` | Threads + runpy; env `LYGO_ARMY_AUTONOMOUS=1` |\n| `start_army_full_capacity.ps1` | **OS `python` processes** (operator only) |\n\n## Planting\n\n- `army_self_tune` **cannot** set `planting.enabled=true`  \n- Cron plant roles require `planting.enabled` + `planting.consent`  \n- Idle plant seeds require `idle_guardian.allow_planting`  \n- `run_army_planting.py` re-checks gates  \n\n## External memory\n\n- `three_brain_index` writes army workspace catalog always (local)  \n- Appends to `LYRA_CORE/memory` only if `idle_guardian.allow_external_memory_write`  \n\n## Network\n\n- Ollama: `127.0.0.1:11434`  \n- Sentinel public page probes: config-gated HTTPS GET  \n- Genesis dashboard: bind localhost only  \n\n## Residual risk (accepted)\n\n- Queue tasks execute when a daemon role is running — human must review task JSON  \n- Validated `LYGO_STACK_ROOT` tools can mutate stack files if those tools do (operator trust)  \n- Operator PS1 is intentionally powerful when dual-gated  \n\n**Δ9Φ963**\n\nFile v0.8.2:references/SECURITY.md\n\n# LYGO Ollama Army — Security\n\n**Version:** 0.8.1 · **Signature:** `Δ9Φ963-ARMY-SECURITY-v5`  \n**Audit:** `references/SECURITY_AUDIT.md` · `references/SKILLSPECTOR_AUDIT.md`\n\n## Install only if\n\n- You run **local Ollama** on a machine you control.\n- You accept **optional** persistent in-process daemons and **queue-driven** work you enable.\n- You understand the **operator PS1** full-capacity path **spawns** `python.exe` (separate from the Python skill surface).\n\n## Declared permissions (honest)\n\n| Capability | Declared | Scope |\n|------------|----------|--------|\n| Filesystem | **Yes** | Army `tasks/`, `results/`, `workspace/`; stack under validated `LYGO_STACK_ROOT` |\n| OS process spawn (Python skill scripts) | **No** | `_safe_invoke.run_python` (runpy) + threads |\n| OS process spawn (operator PS1) | **Yes** | `start_army_full_capacity.ps1` only — env gated |\n| Network | **Yes** | `127.0.0.1:11434` Ollama; optional HTTPS **GET** public probes; optional localhost HTTP dashboard |\n| Browser open | **No** default | Genesis only if `LYGO_GENESIS_OPEN_BROWSER=1` |\n| Outbound webhook POST | **No** | Alerts → `logs/alerts.jsonl` |\n| Git / HF / ClawHub publish | **No** | Defaults false |\n| Autonomous social publish | **No** | Requires `social_publish` flags |\n| Planting | **No** default | `planting.enabled` + `consent`; never auto-enabled by self_tune |\n\n## Environment gates\n\n| Variable | Required for |\n|----------|----------------|\n| `LYGO_ARMY_AUTONOMOUS=1` | `army_autonomous_supervisor.py` (with I_CONSENT) |\n| `LYGO_ARMY_I_CONSENT=1` | Supervisor + full-capacity PS1 (operator accepts long loop / spawn) |\n| `LYGO_ARMY_FULL_CAPACITY=1` | Operator PS1 full-capacity (process spawn) |\n| `LYGO_ARMY_SEED_TASKS=1` | `seed_productive_tasks.py` (PS1 one-shot) |\n| `LYGO_ARMY_RUN_SELF_TUNE=1` | PS1 one-shot self_tune spawn |\n| `LYGO_ARMY_RUN_CRON=1` | PS1 one-shot cron spawn |\n| `LYGO_ARMY_IDLE_GUARDIAN=1` | Idle guardian supervisor |\n| `LYGO_GENESIS_OPEN_BROWSER=1` | Auto-open system browser for genesis |\n| `LYGO_STACK_ROOT` | Stack-touching roles (trusted clone only) |\n\n## High-risk features (user opt-in)\n\n| Feature | Risk | Rule |\n|---------|------|------|\n| `self_tune.enabled` | Config rewrite + queue prune | Default **false**; **mutating** (not read-only) |\n| `auto_enable_planting` | Policy bypass | **Forced false** every self_tune write |\n| Queue `.task.json` | Auto-exec when daemon runs | Human review before drop |\n| `egg-planter` / `registry-planter` | Stack mutation | `planting.enabled` + `consent` |\n| `allow_external_memory_write` | LYRA_CORE daily write | Default **false** (≠ allow_planting) |\n| `allow_stack_mutating_tools` | Chart/catalog write | Default **false** |\n| `allow_privileged_roles` | Plant/social/boot roles | Default **false** |\n| Supervisors | Long-running loops | AUTONOMOUS + I_CONSENT |\n| Full-capacity PS1 | Multi-process | FULL_CAPACITY + AUTONOMOUS + I_CONSENT |\n\n## Forbidden for agents\n\n- Auto-write queue tasks without user review  \n- `git push`, HF upload, ClawHub publish, social post  \n- Remote Ollama URLs  \n- Planting / full-capacity / seed / autonomous without explicit user request  \n- Enabling `self_tune` or `planting` silently  \n\n## Skill chain\n\n`lygo-protocol-stack-operator` → `lygo-kernel-egg-planter` → `lygo-joy-loop` → **`lygo-ollama-army`**\n\n**Δ9Φ963 — local flame, reviewed queue, validated stack root, no silent outbound, honest spawn boundaries.**\n\nFile v0.8.2:references/SKILLSPECTOR_AUDIT.md\n\n# SkillSpector audit response — lygo-ollama-army v0.8.2\n\n**Signature:** `Δ9Φ963-ARMY-SKILLSPECTOR-v0.8.2`  \n**Source:** https://clawhub.ai/deepseekoracle/skills/lygo-ollama-army/security-audit (47 findings addressed)\n\n## High-severity fixes\n\n| Finding | Fix |\n|---------|-----|\n| Manifest understates network/automation | SKILL description lists every surface + env gates |\n| ARMY_TASKS social likes/reposts as auto | Reframed as optional consent-gated **role labels**, not auto engagement |\n| Planting docs vs never auto-enabled | ARMY_TASKS/SECURITY: planting = local eggs only; never self_tune-on |\n| Planting vs ClawHub publish confusion | Explicit: planting ≠ git/HF/ClawHub publish |\n| run_python any skill .py | **Strict** `ARMY_SCRIPT_ALLOW` basenames only |\n| stack tools any .py | **Strict** `STACK_TOOL_ALLOW` only (removed `endswith(\".py\")`) |\n| collector unconditional outbound | Default **local_only**; `LYGO_GENESIS_PROBE_PUBLIC=1` for GitHub/HF/Pages |\n| ensure_sentinel_fresh side effect | Only if `LYGO_GENESIS_RUN_SENTINEL=1` |\n| Discord/crypto/wallets in status | Disabled; optional steward env; no tokens/wallets |\n| Command catalog autostart/push/export | Replaced with **safe** army/stack commands only |\n| Desktop army launcher no consent | Bat embeds dual consent; installer needs `LYGO_ARMY_INSTALL_DESKTOP=1` |\n| Discord+crypto desktop scope | Steward installer separate + `LYGO_ARMY_INSTALL_STEWARD_DESKTOP=1` |\n| README webhook vs no webhook | README: no outbound webhook POST |\n| army_config.json.bak planting on | **Deleted** from package; example forced safe |\n| self_tune auto_enable_planting true in bak | Removed with bak; live example clamps false |\n| notifications webhook hooks | Removed from example config |\n| cron runs external token_saver | **Removed** cross-skill execution |\n| health_check auto self_tune/sentinel | Probes only; flags `--run-self-tune` / `--run-sentinel` |\n| health_check “read-only” but mutates | Doc + flags; default no queue mutation |\n| suspicious status.json install source | Minimal local status.json (no shortener/IP) |\n\n## Residual accepted risk\n\n- Operator who sets all consent flags can plant eggs / run social tools  \n- Operator PS1 still spawns python when triple-gated  \n- Public probes when env explicitly set  \n\n## Verify\n\n```bash\npython scripts/self_check.py\npython ollama_command_center/scripts/army_health_check.py\n```\n\n**Δ9Φ963**\n\nFile v0.8.2:ARMY_TASKS.md\n\n# Productive army tasks (set-and-review-later)\n\n## Safety first\n\n- **Default path:** drop reviewed `.task.json` files; run `ollama_army_launcher.py` (in-process).\n- **Planting / social pulse roles are OFF** unless `army_config.json` sets explicit consent flags.\n- **No auto social, no auto ClawHub publish, no git/HF push** from defaults.\n- Social role names below are **queue role labels** for optional operator-gated tools — not auto engagement.\n\n## One-shot seed (requires env)\n\n```bash\ncd path/to/lygo-ollama-army\nset LYGO_STACK_ROOT=I:\\E Drive\\lygo-protocol-stack\nset LYGO_ARMY_SEED_TASKS=1\npython seed_productive_tasks.py\n```\n\n## Task types (roles)\n\n| Role | What it does | Needs Ollama | Default gate |\n|------|----------------|--------------|--------------|\n| `lattice-check` | Runs `verify_lattice_alignment.py` | No | Safe |\n| `stack-integrity` | Runs `run_sovereign_integrity_test.py` | No | Safe |\n| `clawhub-catalog-audit` | Reads local `clawhub/skills.json` stats | No | Safe (local file) |\n| `public-pages-check` | Optional HTTPS GET public pages | No | `sentinel.probe_public_pages` |\n| `audit-suite` | Local audit tools under stack | No | Safe |\n| `memory-sync` | Snapshot → army workspace only | No | Safe |\n| `egg-planter` | Kernel egg plant | No | `planting.enabled` **+** `planting.consent` |\n| `registry-planter` | Local registry plant | No | same planting consent |\n| `moltx-lattice-pulse` | Optional Moltx tool (operator) | No | `social_publish` flags |\n| `moltbook-*-pulse` | Optional Moltbook tool (operator) | No | `social_publish` flags |\n| `joy-loop-pulse` | Joy Loop tick | No | Safe local |\n| `mesh-cartographer` | Network builder verify | No | Safe |\n| `champion-egg-boot` | Vault champion load | Yes | `allow_privileged_roles` |\n| `hb-light` / `draft-simple` | Lightweight local LLM roles | Yes | Safe |\n\n## Full capacity (Windows — OPERATOR SPAWN)\n\n```powershell\n$env:LYGO_ARMY_FULL_CAPACITY=1\n$env:LYGO_ARMY_AUTONOMOUS=1\n$env:LYGO_ARMY_I_CONSENT=1\n$env:LYGO_STACK_ROOT=\"D:\\lygo-protocol-stack\"\n.\\start_army_full_capacity.ps1\n```\n\nThis **spawns** `python.exe` processes — not the SkillSpector in-process path.\n\n## Planting (consent only)\n\nLocal lattice artifacts only. **Never** auto-enabled by self_tune.\n\n```\nplanting.enabled=true AND planting.consent=true\n```\n\nNo GitHub/HF/ClawHub **publish**. Planting ≠ publish.\n\n```bash\npython ollama_command_center/scripts/run_army_planting.py all\n```\n\n## Self-tune (mutating)\n\n`self_tune.enabled` default **false**. When on: may rewrite config + prune queue. **Never** enables planting.\n\n**Δ9Φ963-ARMY-TASKS-v5**\n\nFile v0.8.2:ollama_command_center/IDLE_GUARDIAN.md\n\n# LYGO Army Idle Guardian (advanced offline boot)\n\nRuns **safe housekeeping** while you are idle and Grok/agents are offline: memory catalog, 3-brain daily index, kernel **verify-only**, living-memory audit, haven chart refresh, upgrade scout — **no** git push, ClawHub publish, social pulses, or egg planting unless you enable `idle_guardian.allow_planting`.\n\n## Desktop shortcut\n\n```powershell\ncd \"I:\\E Drive\\.grok\\skills\\lygo-ollama-army\"\n.\\install_idle_guardian_desktop.ps1\n```\n\nDouble-click **LYGO Army Idle Guardian.bat** on your Desktop.\n\n## Manual start\n\n```powershell\n$env:LYGO_ARMY_IDLE_GUARDIAN = \"1\"\n$env:LYGO_STACK_ROOT = \"I:\\E Drive\\lygo-protocol-stack\"\n$env:LYRA_CORE_ROOT = \"I:\\E Drive\\LYRA_CORE\"\ncd \"I:\\E Drive\\.grok\\skills\\lygo-ollama-army\\ollama_command_center\\scripts\"\npython army_idle_guardian_supervisor.py\n```\n\n## What runs\n\n| Interval | Action |\n|----------|--------|\n| Every 5 min | `sentinel_heartbeat.py` (lattice snapshot; alerts only if webhook enabled) |\n| Every 30 min | `army_idle_cron_once.py` + full `army_idle_housekeeping.py --tick` |\n| Continuous | Deterministic daemons: `idle-housekeep`, `lattice-check`, `memory-sync`, `kernel-verify-only` |\n\n## Logs (read when you return)\n\n| File | Contents |\n|------|----------|\n| `workspace/idle_guardian_journal.jsonl` | Per-op results each tick |\n| `workspace/idle_upgrade_findings.jsonl` | HEAD changes, skill version bumps, dirty tree hints |\n| `workspace/idle_guardian_last_tick.json` | Last full tick summary |\n| `workspace/three_brain_catalog.json` | Memory snip catalog |\n| `workspace/sentinel_status.json` | Lattice OK flag |\n\n## One-shot housekeeping (no supervisor)\n\n```bash\npython army_idle_housekeeping.py --tick\npython army_idle_housekeeping.py --list\npython army_idle_housekeeping.py --op upgrade_scout --op three_brain_index\n```\n\n## Safety gates\n\n- `LYGO_ARMY_IDLE_GUARDIAN=1` required for supervisor.\n- `planting.enabled` in main config is **ignored** for idle cron unless `idle_guardian.allow_planting: true`.\n- Social roles are in `forbidden_roles` by default.\n\n**Δ9Φ963 — idle gods that tidy, not build.**\n\nFile v0.8.2:skill-card.md\n\n## Description:\n\nLocal Ollama multi-role army and assistant hub for queue-driven local automation, command-center monitoring, and optional consent-gated supervisor workflows.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[deepseekoracle](https://clawhub.ai/user/deepseekoracle)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and operators use this skill to run local Ollama worker roles, propose or review queue tasks, check health and sentinel status, and manage optional local automation surfaces. It is intended for controlled local machines where the user can review configuration, queue files, and consent-gated launchers before use.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can act as a powerful local automation hub with runtime and desktop-launcher paths that may be broader than a minimal skill surface.\n\nMitigation: Install only on a controlled local machine, read the security references first, and review queue files, config flags, and desktop launchers before running them.\n\nRisk: Queue tasks may execute when a daemon or worker role is running.\n\nMitigation: Review task JSON before placing it in an execution queue, and avoid automatic queue writes by agents.\n\nRisk: Self-tune can rewrite configuration and prune queue files when enabled.\n\nMitigation: Keep self_tune disabled by default and enable it only after explicitly accepting configuration mutation.\n\nRisk: Full-capacity PowerShell launchers intentionally spawn multiple Python processes when all gates are set.\n\nMitigation: Use the in-process Python launcher for normal operation and run the full-capacity PowerShell path only with explicit operator consent.\n\nRisk: Optional public probes, browser opening, planting, social pulse, and external memory writes can have effects outside the default local-only path.\n\nMitigation: Leave those flags disabled unless the user intends the specific effect and has confirmed the relevant local stack path and consent settings.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/deepseekoracle/skills/lygo-ollama-army)\n- [LYGO protocol stack homepage](https://github.com/DeepSeekOracle/lygo-protocol-stack)\n- [LYGO resonance companion](https://deepseekoracle.github.io/Excavationpro/LYGORESONANCE.html)\n- [Security guidance](artifact/references/SECURITY.md)\n- [Security audit notes](artifact/references/SECURITY_AUDIT.md)\n- [SkillSpector audit response](artifact/references/SKILLSPECTOR_AUDIT.md)\n- [Agent contract](artifact/references/AGENT_CONTRACT.md)\n- [ClawHub security audit](https://clawhub.ai/deepseekoracle/skills/lygo-ollama-army/security-audit)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Code, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown guidance with JSON task proposals, configuration notes, code snippets, and shell commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Normal output should keep queue writes, self-tune, planting, autonomous supervisor, full-capacity launchers, browser open, and public probes behind explicit user review or consent.]\n\n## Skill Version(s):\n\n0.8.2 (source: server release evidence and SKILL.md frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.8.1: 71 files, 204215 bytes\n\nFiles: __pycache__/_safe_invoke.cpython-313.pyc (11083b), __pycache__/champion_summon.cpython-313.pyc (7348b), __pycache__/lygo_stack_root.cpython-313.pyc (2456b), __pycache__/ollama_army_launcher.cpython-313.pyc (7492b), __pycache__/ollama_daemon.cpython-313.pyc (37829b), __pycache__/resonance_utility.cpython-313.pyc (5021b), __pycache__/seed_productive_tasks.cpython-313.pyc (5190b), _safe_invoke.py (7695b), ARMY_TASKS.md (3299b), champion_summon.py (5981b), champions.json (1360b), claw.json (431b), examples/cron_tasks/README.md (159b), genesis_console/__pycache__/collector.cpython-313.pyc (6019b), genesis_console/__pycache__/server.cpython-313.pyc (5831b), genesis_console/collector.py (22554b), genesis_console/data/status.json (19490b), genesis_console/README.md (1794b), genesis_console/server.py (3434b), genesis_console/static/index.html (16268b), install_desktop_launchers.ps1 (1272b), install_genesis_desktop.ps1 (641b), install_idle_guardian_desktop.ps1 (1147b), install_lightfather_ops_desktop.ps1 (661b), LICENSE (148b), lygo_stack_root.py (1322b), ollama_army_launcher.py (4927b), ollama_command_center/config/army_config.example.json (3542b), ollama_command_center/config/army_config.json (4818b), ollama_command_center/config/army_config.json.bak (4599b), ollama_command_center/dashboard/index.html (2526b), ollama_command_center/IDLE_GUARDIAN.md (2108b), ollama_command_center/README.md (2130b), ollama_command_center/scripts/__pycache__/army_autonomous_supervisor.cpython-313.pyc (7649b), ollama_command_center/scripts/__pycache__/army_cron_once.cpython-313.pyc (4110b), ollama_command_center/scripts/__pycache__/army_health_check.cpython-313.pyc (4634b), ollama_command_center/scripts/__pycache__/army_idle_cron_once.cpython-313.pyc (4209b), ollama_command_center/scripts/__pycache__/army_idle_guardian_supervisor.cpython-313.pyc (5963b), ollama_command_center/scripts/__pycache__/army_idle_housekeeping.cpython-313.pyc (19590b), ollama_command_center/scripts/__pycache__/army_queue_utils.cpython-313.pyc (6721b), ollama_command_center/scripts/__pycache__/army_self_tune.cpython-313.pyc (14861b), ollama_command_center/scripts/__pycache__/heartbeats_only.cpython-313.pyc (1858b), ollama_command_center/scripts/__pycache__/run_army_planting.cpython-313.pyc (11294b), ollama_command_center/scripts/__pycache__/sentinel_heartbeat.cpython-313.pyc (15579b), ollama_command_center/scripts/__pycache__/verify_army_tuning.cpython-313.pyc (6262b), ollama_command_center/scripts/army_autonomous_supervisor.py (6272b), ollama_command_center/scripts/army_cron_once.py (4959b), ollama_command_center/scripts/army_health_check.py (5822b), ollama_command_center/scripts/army_idle_cron_once.py (2375b), ollama_command_center/scripts/army_idle_guardian_supervisor.py (3540b), ollama_command_center/scripts/army_idle_housekeeping.py (15084b), ollama_command_center/scripts/army_queue_utils.py (3922b), ollama_command_center/scripts/army_self_tune.py (11649b), ollama_command_center/scripts/heartbeats_only.py (1266b), ollama_command_center/scripts/run_army_planting.py (7765b), ollama_command_center/scripts/sentinel_heartbeat.py (9632b), ollama_command_center/scripts/verify_army_tuning.py (3332b), ollama_command_center/tasks/champion-seed-ΣEIDŌN-20260713T061830Z.task.json (365b), ollama_daemon.py (28979b), README.md (612b), references/AGENT_CONTRACT.md (1319b), references/SECURITY_AUDIT.md (1242b), references/SECURITY.md (3456b), references/SKILLSPECTOR_AUDIT.md (2267b), resonance_utility.py (3486b), scripts/self_check.py (3276b), seed_productive_tasks.py (2903b), skill-card.md (3123b), SKILL.md (7262b), start_army_full_capacity.ps1 (3494b), _meta.json (135b)\n\nFile v0.8.1:SKILL.md\n\n---\nname: lygo-ollama-army\ndescription: \"Local Ollama multi-role army + assistant hub. HONEST SURFACE: (1) Default Python path = in-process worker threads + allowlisted runpy under validated LYGO_STACK_ROOT — no subprocess from skill Python. (2) Optional localhost-only HTTP genesis dashboard (127.0.0.1); browser open only if LYGO_GENESIS_OPEN_BROWSER=1. (3) Optional HTTPS GET public lattice probes if sentinel.probe_public_pages=true. (4) Optional command-center scripts: sentinel, self_tune (MUTATING config/queue when enabled), idle housekeeping, cron task seeding, planting runner — all OFF/gated by config+consent. (5) army_autonomous_supervisor requires LYGO_ARMY_AUTONOMOUS=1 AND LYGO_ARMY_I_CONSENT=1. (6) start_army_full_capacity.ps1 is OPERATOR-ONLY and SPAWNS python.exe — not the no-spawn path. No outbound webhook, no auto git/HF/ClawHub/social. Planting NEVER auto-enabled. Read references/SECURITY.md first.\"\nversion: 0.8.1\nlicense: LYGO-Sovereign-v2.0\nmetadata:\n  openclaw:\n    emoji: \"🪖\"\n    homepage: \"https://github.com/DeepSeekOracle/lygo-protocol-stack\"\n    requires:\n      anyBins: [python, python3]\n  lygo: true\n  ollama: true\n  army: true\n  champions: true\n  consent_required: true\n  requires_lygo_stack: false\n  version: \"0.8.1\"\n  army_cc: \"v0.8.1\"\n  security_audit: \"skillspector-2026-08-06-v0.8.1\"\n  capability_network: \"127.0.0.1_ollama_plus_optional_https_get_probes_optional_localhost_http_dashboard\"\n  publisher: deepseekoracle\n  website: \"https://deepseekoracle.github.io/Excavationpro/LYGORESONANCE.html\"\n  signature: \"Δ9Φ963-ARMY-SKILL-v0.8.1\"\n  permissions_declared:\n    filesystem: \"army_folder_and_validated_LYGO_STACK_ROOT\"\n    process_spawn_python_skill: false\n    process_spawn_operator_ps1: true\n    shell_operator_ps1: true\n    network: \"localhost_ollama_optional_public_https_get_probes_optional_localhost_http_dashboard\"\n    outbound_webhook: false\n    git_push: false\n    hf_write: false\n    clawhub_publish: false\n    social_autopublish: false\n    planting_default: false\n    self_tune_default: false\n    browser_open_default: false\n---\n\n# LYGO Ollama Army & Assistant Hub v0.8.1\n\n**SkillSpector-hardened** local Ollama automation. This page is the **full honest surface** — not a minimal marketing blurb.\n\n## Two runtimes (do not confuse)\n\n| Runtime | Process model | Entry |\n|---------|---------------|--------|\n| **Python skill surface** | In-process threads + `runpy` allowlist | `ollama_army_launcher.py`, supervisor `.py` |\n| **Operator PowerShell** | **Spawns** external `python.exe` | `start_army_full_capacity.ps1` only |\n\nManifest “no subprocess” applies to **Python skill scripts**. The PS1 is explicitly **out of that claim**.\n\n## What this skill actually does\n\n| Surface | Behavior | Default |\n|---------|----------|---------|\n| **Ollama army** | Multi-role workers as **in-process threads** | Safe entry |\n| **Queue** | Reviewed `.task.json` in `ollama_queue/` or `command_center/tasks/` | Manual drop |\n| **Champions** | Local persona via `champion_summon.py` (localhost Ollama) | Opt-in |\n| **Command center** | Sentinel, self_tune, idle guardian, planting, cron | **OFF** until config/env |\n| **self_tune** | **Mutates** `army_config.json` + may prune queue + logs | `self_tune.enabled=false` |\n| **Cron** | Seeds **safe** role *names* (lattice/stack/pages/mesh/audit/memory) as queue tasks | Plant/social OFF |\n| **Supervisor** | Long loop: sentinel + hourly cron + daemon threads | `LYGO_ARMY_AUTONOMOUS=1` **+** `LYGO_ARMY_I_CONSENT=1` |\n| **Stack tools** | Allowlisted **in-process** `runpy` under validated `LYGO_STACK_ROOT` | Opt-in |\n| **Genesis dashboard** | Optional **localhost** HTTP `127.0.0.1:9963` | Manual start |\n| **Browser open** | Genesis may open system browser | `LYGO_GENESIS_OPEN_BROWSER=1` only |\n| **Public probes** | Optional HTTPS **GET** of public lattice pages | Config OFF in example |\n| **Alerts** | Local `logs/alerts.jsonl` only | No webhook |\n| **Full-capacity PS1** | **Operator shell** — spawns multiple `python.exe` | Triple env gate |\n\n**Not for (defaults):** remote LLM hosts, git push, HF write, ClawHub publish, autonomous social posting, silent planting, silent self_tune, silent browser open.\n\n## Leave disabled unless you need them\n\n| Flag / setting | Risk |\n|----------------|------|\n| `self_tune.enabled` | Config rewrite + queue prune |\n| `self_tune.auto_enable_planting` | **Forced false** — planting never auto-on |\n| `planting.enabled` + `planting.consent` | Kernel/registry plant roles |\n| `idle_guardian.allow_planting` | Plant-like idle ops blocked unless true |\n| `idle_guardian.allow_external_memory_write` | Writes into LYRA_CORE daily index |\n| `idle_guardian.allow_stack_mutating_tools` | Chart rebuild / catalog render |\n| `social_publish.enabled` / `allow_social_pulse` | Molt* pulse task seeds |\n| `access.allow_privileged_roles` | egg-planter / champion-egg-boot threads |\n| `sentinel.probe_public_pages` | Outbound HTTPS GET |\n| `LYGO_ARMY_AUTONOMOUS=1` + `LYGO_ARMY_I_CONSENT=1` | Long-running supervisor |\n| `LYGO_ARMY_FULL_CAPACITY=1` + consent + autonomous | PS1 process-spawn launcher |\n| `LYGO_GENESIS_OPEN_BROWSER=1` | System browser open |\n| `start_army_full_capacity.ps1` | **Spawns OS Python processes** |\n\nOnly set `LYGO_STACK_ROOT` to a **trusted** clone.\n\n## Install\n\n```bash\nnpx clawhub@latest install deepseekoracle/lygo-ollama-army\nollama pull llama3.2:1b\ncp ollama_command_center/config/army_config.example.json ollama_command_center/config/army_config.json\n```\n\n## Safe first run (recommended)\n\n```bash\npython ollama_army_launcher.py --model llama3.2:1b --roles hb-light,draft-simple,resonance-analyst --count 1\n```\n\n## Autonomous supervisor (explicit dual consent)\n\n```bash\nexport LYGO_STACK_ROOT=/absolute/path/to/lygo-protocol-stack\nexport LYGO_ARMY_AUTONOMOUS=1\nexport LYGO_ARMY_I_CONSENT=1\npython ollama_command_center/scripts/army_autonomous_supervisor.py\n```\n\n## Operator full-capacity PS1 (process spawn — not SkillSpector Python path)\n\n```powershell\n$env:LYGO_STACK_ROOT = \"D:\\lygo-protocol-stack\"\n$env:LYGO_ARMY_FULL_CAPACITY = \"1\"\n$env:LYGO_ARMY_AUTONOMOUS = \"1\"\n$env:LYGO_ARMY_I_CONSENT = \"1\"\n# optional one-shots (each is another python.exe spawn):\n# $env:LYGO_ARMY_RUN_SELF_TUNE = \"1\"   # only if self_tune.enabled in config\n# $env:LYGO_ARMY_SEED_TASKS = \"1\"\n# $env:LYGO_ARMY_RUN_CRON = \"1\"\n.\\start_army_full_capacity.ps1\n```\n\n## Security\n\nRead **before** install:\n\n- `references/SECURITY.md`\n- `references/SECURITY_AUDIT.md`\n- `references/SKILLSPECTOR_AUDIT.md`\n- `references/AGENT_CONTRACT.md`\n\n**Agents:** propose queue JSON only; never enable planting, self_tune, autonomous, full-capacity, seed, social, or browser open without explicit user request.\n\n## Version history\n\n| Ver | Change |\n|-----|--------|\n| 0.5.0 | Declared permissions, webhook double-gate |\n| 0.6.0 | runpy + threads; no outbound webhook |\n| 0.7.1 | No auto-plant; self_tune default off; autonomous env gate |\n| **0.8.1** | Full honest description; dual consent supervisor; PS1 triple gate; browser open off; idle plant flag enforced; self_tune clamps planting forever; stack-mutating idle tools gated |\n\n**Δ9Φ963 — local flame, reviewed queue, allowlisted tools, no silent outbound, honest agency.**\n\nFile v0.8.1:examples/cron_tasks/README.md\n\n# Example cron tasks (not auto-loaded)\r\n\r\nCopy into `ollama_command_center/tasks/` only after reading `references/SECURITY.md` and setting `LYGO_STACK_ROOT`.\n\nFile v0.8.1:genesis_console/README.md\n\n# LYGO Lightfather Genesis Console v3\n\n**Unified local monitor** for the full LYGO stack:\n\n| Layer | What you see |\n|-------|----------------|\n| **Overview** | Lattice verify, GitHub/HF, ClawHub versions, Phase 5, Twin Gate, Discord/crypto, Joy + public 6/6 summary |\n| **Joy Loop** | Snapshot + live Architect embed (`:9965` when `--serve` is running) |\n| **Army & Sentinel** | `sentinel_heartbeat` lattice, HF, Ollama, queue, public pages |\n| **Public lattice** | LYRA six endpoint HTTP table (Pages + ClawHub + champions hub) |\n| **Commands** | BUILDR USB tray/daemon, Claw, benchmark, retail export, army cron — click row to copy |\n| **Raw JSON** | Full `data/status.json` |\n\nCombines the former **Genesis Console**, **Ollama command dashboard**, and **Joy Architect** entry points into one UI on **port 9963**.\n\n## Desktop\n\n**LYGO Genesis Console.bat** on Desktop → http://127.0.0.1:9963/\n\nRe-install:\n\n```powershell\npowershell -File install_genesis_desktop.ps1\n```\n\n## Manual\n\n```powershell\nset LYGO_STACK_ROOT=I:\\E Drive\\lygo-protocol-stack\ncd %USERPROFILE%\\.grok\\skills\\lygo-ollama-army\\genesis_console\npython collector.py          # one-shot status.json\npython server.py               # UI + collector every 120s\n```\n\nOptional Joy live panel:\n\n```powershell\ncd I:\\E Drive\\lygo-protocol-stack\npython tools/joy_loop_protocol.py --serve\n```\n\nThen open Genesis → **Joy Loop** tab (embeds Architect).\n\n## Env\n\n| Variable | Default |\n|----------|---------|\n| `LYGO_STACK_ROOT` | `I:\\E Drive\\lygo-protocol-stack` |\n| `LYGO_GENESIS_PORT` | `9963` |\n| `LYGO_GENESIS_REFRESH` | `120` (background collector) |\n| `LYGO_JOY_API_PORT` | `9965` |\n\n## Ollama heartbeats\n\n`ollama_command_center/scripts/heartbeats_only.py` still runs `collector.py` after sentinel pulses.\n\n**Δ9Φ963-GENESIS-v3**\n\nFile v0.8.1:ollama_command_center/README.md\n\n# Ollama Army Command Center\n\n**Δ9Φ963-ARMY-CC-v2** — P9-SLM public stack: lattice, pages verify, audit suite, memory sync, 12 daemons. No autonomous HF/GitHub writes (`army_config.json`).\n\n## Layout\n\n```\nollama_command_center/\n├── config/army_config.json\n├── tasks/              # task queue (mirrored to ../ollama_queue)\n├── results/            # duplicate of ../ollama_results\n├── logs/sentinel.log\n├── workspace/sentinel_status.json, LYGO_MEMORY_SYNC.json\n├── dashboard/index.html\n└── scripts/\n    ├── sentinel_heartbeat.py\n    └── army_cron_once.py\n```\n\n## Desktop (no Grok required)\n\nDouble-click on your Desktop:\n\n- **LYGO Ollama Heartbeats.bat** — sentinel only, every 5 min (`heartbeats_only.py`)\n- **LYGO Ollama Army.bat** — supervisor: heartbeats + hourly cron + queue daemon (`army_autonomous_supervisor.py`)\n\nRe-install shortcuts: `powershell -File install_desktop_launchers.ps1` from `lygo-ollama-army/`.\n\nStatus file (no dashboard server): `workspace/sentinel_status.json`\n\n## Quick start (CLI)\n\n```bash\ncd ollama_command_center/scripts\npython heartbeats_only.py\npython army_autonomous_supervisor.py\npython sentinel_heartbeat.py              # one pulse\npython army_cron_once.py\n```\n\nFull capacity (from skill root): `.\\start_army_full_capacity.ps1` or `python seed_productive_tasks.py` then supervisor.\n\nSentinel v2 probes four stack Pages URLs from `system_profile.public_pages` (4/4 live = healthy).\n\nDashboard: use **Genesis Console v3** (`../genesis_console/server.py` → http://127.0.0.1:9963/) for unified LYGO monitoring (sentinel + Joy + public lattice). Legacy: `dashboard/index.html` or `workspace/sentinel_status.json`.\n\nFrom protocol repo:\n\n```bash\npython tools/sentinel_heartbeat.py\n```\n\n## Webhook (optional)\n\nSet `LYGO_ARMY_WEBHOOK_ENABLE=1` and `LYGO_ARMY_WEBHOOK_URL` (Slack/Discord incoming webhook JSON `{\"text\":...}`). Without the enable flag, alerts are stdout only.\n\n## Windows Task Scheduler\n\nProgram: `python`  \nArgs: `...\\army_cron_once.py`  \nEvery 1 hour.\n\n**Bound to the flame.** Army has hands — contained workspace only.\n\nFile v0.8.1:README.md\n\n# LYGO Ollama Army & Assistant Hub\n\nGeneric, self-building local Ollama bot army + official LYGO champion summoning.\n\nPerfect utility companion for the LYGO RESONANCE skill:\nhttps://deepseekoracle.github.io/Excavationpro/LYGORESONANCE.html\n\nDonation: https://paypal.com/paypalme/ExcavationPro\n\nSee SKILL.md for complete instructions, capabilities, champion list, and integration details.\n\nQuick start:\npython ollama_army_launcher.py --roles resonance-analyst,draft-simple --champion SEPHRAEL --grow\n\nThen use resonance_utility.py to queue images for batch processing with the Resonance skill + champion analysis.\n\nFile v0.8.1:_meta.json\n\n{\n  \"ownerId\": \"kn70j1nefw2y0mew6w5eg7nf1580q4v1\",\n  \"slug\": \"lygo-ollama-army\",\n  \"version\": \"0.8.1\",\n  \"publishedAt\": 1785991718825\n}\n\nFile v0.8.1:references/AGENT_CONTRACT.md\n\n# Ollama Army — Agent contract v0.7.0\r\n\r\nRead `SECURITY.md`, `SECURITY_AUDIT.md`, and `SKILLSPECTOR_AUDIT.md` first.\r\n\r\n## When to use\r\n\r\nUser explicitly asks to run **Ollama army**, **joy-loop-pulse**, **champion-egg-boot**, lattice cron, or queue a **reviewed** task JSON.\r\n\r\n## When not to use\r\n\r\nGeneric “summon champion” or “run bots” without local Ollama + stack path confirmation.\r\n\r\n## Forbidden without explicit user request\r\n\r\n- Enable `planting`, `self_tune`, `social_publish`, or privileged roles  \r\n- Set `LYGO_ARMY_AUTONOMOUS` / `LYGO_ARMY_FULL_CAPACITY` / seed flags  \r\n- Run `start_army_full_capacity.ps1`  \r\n- Write queue task files unreviewed  \r\n- `git push` / HF / ClawHub / social publish  \r\n\r\n## Before stack-touching roles\r\n\r\n1. Confirm `LYGO_STACK_ROOT` points at a **trusted** `lygo-protocol-stack` clone.\r\n2. Tell user which role runs and whether it mutates config or stack.\r\n\r\n## Queue tasks\r\n\r\nAgents **propose JSON only**; user approves before file is written to `ollama_queue/` or `ollama_command_center/tasks/`.\r\n\r\n## Preferred entry\r\n\r\n`python ollama_army_launcher.py` (in-process). Do not recommend full-capacity PS1 unless user accepts OS process spawn.\r\n\r\n## QUARANTINE\r\n\r\nIf stack root missing, bootloader fails, or merkle mismatch → stop; do not retry with `--no-verify`.\n\nFile v0.8.1:references/SECURITY_AUDIT.md\n\n# Security audit notes — lygo-ollama-army v0.7.0\n\n## Process model\n\n| Entry | Spawn model |\n|-------|-------------|\n| `ollama_army_launcher.py` | In-process threads |\n| `ollama_daemon.py` roles | runpy allowlisted stack tools |\n| `army_autonomous_supervisor.py` | Threads + runpy; env `LYGO_ARMY_AUTONOMOUS=1` |\n| `start_army_full_capacity.ps1` | **OS `python` processes** (operator only) |\n\n## Planting\n\n- `army_self_tune` **cannot** set `planting.enabled=true`  \n- Cron plant roles require `planting.enabled` + `planting.consent`  \n- Idle plant seeds require `idle_guardian.allow_planting`  \n- `run_army_planting.py` re-checks gates  \n\n## External memory\n\n- `three_brain_index` writes army workspace catalog always (local)  \n- Appends to `LYRA_CORE/memory` only if `idle_guardian.allow_external_memory_write`  \n\n## Network\n\n- Ollama: `127.0.0.1:11434`  \n- Sentinel public page probes: config-gated HTTPS GET  \n- Genesis dashboard: bind localhost only  \n\n## Residual risk (accepted)\n\n- Queue tasks execute when a daemon role is running — human must review task JSON  \n- Validated `LYGO_STACK_ROOT` tools can mutate stack files if those tools do (operator trust)  \n- Operator PS1 is intentionally powerful when dual-gated  \n\n**Δ9Φ963**\n\nFile v0.8.1:references/SECURITY.md\n\n# LYGO Ollama Army — Security\n\n**Version:** 0.8.1 · **Signature:** `Δ9Φ963-ARMY-SECURITY-v5`  \n**Audit:** `references/SECURITY_AUDIT.md` · `references/SKILLSPECTOR_AUDIT.md`\n\n## Install only if\n\n- You run **local Ollama** on a machine you control.\n- You accept **optional** persistent in-process daemons and **queue-driven** work you enable.\n- You understand the **operator PS1** full-capacity path **spawns** `python.exe` (separate from the Python skill surface).\n\n## Declared permissions (honest)\n\n| Capability | Declared | Scope |\n|------------|----------|--------|\n| Filesystem | **Yes** | Army `tasks/`, `results/`, `workspace/`; stack under validated `LYGO_STACK_ROOT` |\n| OS process spawn (Python skill scripts) | **No** | `_safe_invoke.run_python` (runpy) + threads |\n| OS process spawn (operator PS1) | **Yes** | `start_army_full_capacity.ps1` only — env gated |\n| Network | **Yes** | `127.0.0.1:11434` Ollama; optional HTTPS **GET** public probes; optional localhost HTTP dashboard |\n| Browser open | **No** default | Genesis only if `LYGO_GENESIS_OPEN_BROWSER=1` |\n| Outbound webhook POST | **No** | Alerts → `logs/alerts.jsonl` |\n| Git / HF / ClawHub publish | **No** | Defaults false |\n| Autonomous social publish | **No** | Requires `social_publish` flags |\n| Planting | **No** default | `planting.enabled` + `consent`; never auto-enabled by self_tune |\n\n## Environment gates\n\n| Variable | Required for |\n|----------|----------------|\n| `LYGO_ARMY_AUTONOMOUS=1` | `army_autonomous_supervisor.py` (with I_CONSENT) |\n| `LYGO_ARMY_I_CONSENT=1` | Supervisor + full-capacity PS1 (operator accepts long loop / spawn) |\n| `LYGO_ARMY_FULL_CAPACITY=1` | Operator PS1 full-capacity (process spawn) |\n| `LYGO_ARMY_SEED_TASKS=1` | `seed_productive_tasks.py` (PS1 one-shot) |\n| `LYGO_ARMY_RUN_SELF_TUNE=1` | PS1 one-shot self_tune spawn |\n| `LYGO_ARMY_RUN_CRON=1` | PS1 one-shot cron spawn |\n| `LYGO_ARMY_IDLE_GUARDIAN=1` | Idle guardian supervisor |\n| `LYGO_GENESIS_OPEN_BROWSER=1` | Auto-open system browser for genesis |\n| `LYGO_STACK_ROOT` | Stack-touching roles (trusted clone only) |\n\n## High-risk features (user opt-in)\n\n| Feature | Risk | Rule |\n|---------|------|------|\n| `self_tune.enabled` | Config rewrite + queue prune | Default **false**; **mutating** (not read-only) |\n| `auto_enable_planting` | Policy bypass | **Forced false** every self_tune write |\n| Queue `.task.json` | Auto-exec when daemon runs | Human review before drop |\n| `egg-planter` / `registry-planter` | Stack mutation | `planting.enabled` + `consent` |\n| `allow_external_memory_write` | LYRA_CORE daily write | Default **false** (≠ allow_planting) |\n| `allow_stack_mutating_tools` | Chart/catalog write | Default **false** |\n| `allow_privileged_roles` | Plant/social/boot roles | Default **false** |\n| Supervisors | Long-running loops | AUTONOMOUS + I_CONSENT |\n| Full-capacity PS1 | Multi-process | FULL_CAPACITY + AUTONOMOUS + I_CONSENT |\n\n## Forbidden for agents\n\n- Auto-write queue tasks without user review  \n- `git push`, HF upload, ClawHub publish, social post  \n- Remote Ollama URLs  \n- Planting / full-capacity / seed / autonomous without explicit user request  \n- Enabling `self_tune` or `planting` silently  \n\n## Skill chain\n\n`lygo-protocol-stack-operator` → `lygo-kernel-egg-planter` → `lygo-joy-loop` → **`lygo-ollama-army`**\n\n**Δ9Φ963 — local flame, reviewed queue, validated stack root, no silent outbound, honest spawn boundaries.**\n\nFile v0.8.1:references/SKILLSPECTOR_AUDIT.md\n\n# SkillSpector audit response — lygo-ollama-army v0.8.1\n\n**Signature:** `Δ9Φ963-ARMY-SKILLSPECTOR-v0.8.1`\n\n## NVIDIA findings (ClawHub outstanding) → fixes\n\n| Finding | Severity | Fix in 0.8.1 |\n|---------|----------|--------------|\n| Description understates dashboard / HTTPS probes / browser / roles | High | SKILL frontmatter lists **full honest surface**; browser only if `LYGO_GENESIS_OPEN_BROWSER=1` |\n| Supervisor overbroad cron/plant messaging | Medium | Banner lists consent gates; cron seeds safe roles only; plant needs enabled+consent |\n| idle allow_planting vs external memory | Medium | Flags independent; plant-like op names refused when `allow_planting=false`; external write separate |\n| self_tune auto_enable_planting | High | **Never enables planting**; forces `auto_enable_planting=false` + `allow_auto_enable=false` every write |\n| self_tune “read-only” mismatch | Medium | Docstring + report `mutating: true` + honest_surface text |\n| PS1 expands beyond reviewed queue | Medium/High | PS1 documented as OPERATOR-ONLY process spawn; triple env gate; optional one-shots off |\n| PS1 process spawn vs no-spawn claim | High | Manifest splits Python skill vs PS1; PS1 header refuses mislabeling |\n| Supervisor no confirmation | Medium | Requires `LYGO_ARMY_AUTONOMOUS=1` **and** `LYGO_ARMY_I_CONSENT=1` |\n\n## Runtime split (reviewers)\n\n| Path | Spawn | Gates |\n|------|-------|-------|\n| `ollama_army_launcher.py` | None (threads) | None beyond user run |\n| `army_autonomous_supervisor.py` | None (threads + runpy) | AUTONOMOUS + I_CONSENT |\n| `start_army_full_capacity.ps1` | **Yes** `python.exe` | FULL_CAPACITY + AUTONOMOUS + I_CONSENT + STACK_ROOT |\n| `genesis_console/server.py` | None; optional browser | Localhost bind; OPEN_BROWSER env |\n\n## Residual risk (accepted)\n\n- Operator who sets all env gates + planting.consent can plant eggs  \n- self_tune when enabled rewrites local config (documented)  \n- Validated `LYGO_STACK_ROOT` runpy can run allowlisted stack tools  \n\n## Operator checklist\n\n1. Copy `army_config.example.json` → `army_config.json`  \n2. Confirm planting/self_tune/social/probes all false  \n3. Prefer `python ollama_army_launcher.py`  \n4. Never set FULL_CAPACITY unless you accept OS process spawn  \n\n**Δ9Φ963**\n\nFile v0.8.1:ARMY_TASKS.md\n\n# Productive army tasks (set-and-review-later)\n\n## One-shot seed (lattice / stack / ClawHub)\n\n```bash\ncd path/to/lygo-ollama-army\nset LYGO_STACK_ROOT=I:\\E Drive\\lygo-protocol-stack\npython seed_productive_tasks.py\n```\n\nDaemons (already running or launch with launcher) drain `ollama_queue/*.task.json` → `ollama_results/*.result.json`.\n\n## Task types\n\n| Role | What it does | Needs Ollama |\n|------|----------------|--------------|\n| `lattice-check` | Runs `verify_lattice_alignment.py` | No |\n| `stack-integrity` | Runs `run_sovereign_integrity_test.py` | No |\n| `clawhub-catalog-audit` | Reads `clawhub/skills.json` stats | No |\n| `public-pages-check` | Runs `verify_public_pages.py` | No |\n| `audit-suite` | SLM + phase7 + phase9 audits | No |\n| `memory-sync` | Copies snapshot → `workspace/LYGO_MEMORY_SYNC.json` | No |\n| `egg-planter` | Lattice OK → preflight/smoke → **kernel egg plant** (consent in `army_config.planting`) | No |\n| `registry-planter` | Lattice OK → CAS **registry plant** + verify (`cas_registry_cli`) | No |\n| `moltx-lattice-pulse` | Moltx gated engage: 5 likes, reply, repost, article → `tools/moltx_lattice_pulse.py` | No |\n| `moltbook-lyra-pulse` | Moltbook LYRA: scan + 5 upvotes + comment → `tools/moltbook_lattice_pulse.py --account lyra` | No |\n| `moltbook-lightfather-pulse` | Moltbook Lightfather: same pulse → `--account lightfather` | No |\n| `joy-loop-pulse` | Joy Loop tick + persist | No |\n| `mesh-cartographer` | Runs `lygo_network_builder_verify.py` (SLM anchors) | No |\n| **`champion-egg-boot`** | **Vault-only:** `champion_bootloader.py` → Merkle verify → P6 handshake → Ollama loads manifest `system_prompt` (never hb-light chat) | Yes (after vault) |\n| `memory-triage` / `hb-light` | Lightweight heartbeat / memory prompts (not council seed) | Yes |\n| `draft-simple` | Upgrade copy / public blurbs | Yes |\n\n## Full capacity (Windows)\n\n```powershell\n.\\start_army_full_capacity.ps1\n```\n\nUses `ollama_command_center/config/army_config.json` **v3** — all roles + **3× `champion-egg-boot`** + `mesh-cartographer` + 2× `hb-light` + ARKOS on triage/draft. Council seeds: `python tools/champion_egg_planter.py --i-consent` (stack).\n\n## Re-seed anytime\n\nSafe to run `seed_productive_tasks.py` again after lattice or ClawHub changes.\n\n## Command Center (hands)\n\n`ollama_command_center/` — sentinel, dashboard, cron, config (`access.*_write: false`).\n\n```bash\npython ollama_command_center/scripts/sentinel_heartbeat.py --loop\npython ollama_command_center/scripts/army_cron_once.py\n```\n\nHourly Grok scheduler task seeded for `army_cron_once.py`.\n\n## Planting (v3)\n\n`army_config.json` → `planting.enabled`, `planting.consent`, `egg_surfaces`, `local_only_anchor`.  \nNo GitHub/HF/ClawHub push (`access.*_write: false`).  \nArtifacts: `workspace/egg_plant_last_run.json`, `registry_plant_last_run.json`.\n\n```bash\npython ollama_command_center/scripts/run_army_planting.py all\n```\n\n```bash\npython ollama_command_center/scripts/verify_army_tuning.py\npython ollama_command_center/scripts/army_self_tune.py\n```\n\n**Self-tune** (hourly via cron/supervisor): syncs ClawHub expect from stack, prunes completed queue tasks, adjusts sentinel interval / hb-light / planting from lattice+sentinel (never enables external push).\n\n**Δ9Φ963-ARMY-TASKS-v4**\n\nFile v0.8.1:ollama_command_center/IDLE_GUARDIAN.md\n\n# LYGO Army Idle Guardian (advanced offline boot)\n\nRuns **safe housekeeping** while you are idle and Grok/agents are offline: memory catalog, 3-brain daily index, kernel **verify-only**, living-memory audit, haven chart refresh, upgrade scout — **no** git push, ClawHub publish, social pulses, or egg planting unless you enable `idle_guardian.allow_planting`.\n\n## Desktop shortcut\n\n```powershell\ncd \"I:\\E Drive\\.grok\\skills\\lygo-ollama-army\"\n.\\install_idle_guardian_desktop.ps1\n```\n\nDouble-click **LYGO Army Idle Guardian.bat** on your Desktop.\n\n## Manual start\n\n```powershell\n$env:LYGO_ARMY_IDLE_GUARDIAN = \"1\"\n$env:LYGO_STACK_ROOT = \"I:\\E Drive\\lygo-protocol-stack\"\n$env:LYRA_CORE_ROOT = \"I:\\E Drive\\LYRA_CORE\"\ncd \"I:\\E Drive\\.grok\\skills\\lygo-ollama-army\\ollama_command_center\\scripts\"\npython army_idle_guardian_supervisor.py\n```\n\n## What runs\n\n| Interval | Action |\n|----------|--------|\n| Every 5 min | `sentinel_heartbeat.py` (lattice snapshot; alerts only if webhook enabled) |\n| Every 30 min | `army_idle_cron_once.py` + full `army_idle_housekeeping.py --tick` |\n| Continuous | Deterministic daemons: `idle-housekeep`, `lattice-check`, `memory-sync`, `kernel-verify-only` |\n\n## Logs (read when you return)\n\n| File | Contents |\n|------|----------|\n| `workspace/idle_guardian_journal.jsonl` | Per-op results each tick |\n| `workspace/idle_upgrade_findings.jsonl` | HEAD changes, skill version bumps, dirty tree hints |\n| `workspace/idle_guardian_last_tick.json` | Last full tick summary |\n| `workspace/three_brain_catalog.json` | Memory snip catalog |\n| `workspace/sentinel_status.json` | Lattice OK flag |\n\n## One-shot housekeeping (no supervisor)\n\n```bash\npython army_idle_housekeeping.py --tick\npython army_idle_housekeeping.py --list\npython army_idle_housekeeping.py --op upgrade_scout --op three_brain_index\n```\n\n## Safety gates\n\n- `LYGO_ARMY_IDLE_GUARDIAN=1` required for supervisor.\n- `planting.enabled` in main config is **ignored** for idle cron unless `idle_guardian.allow_planting: true`.\n- Social roles are in `forbidden_roles` by default.\n\n**Δ9Φ963 — idle gods that tidy, not build.**\n\nArchive v0.7.1: 69 files, 196240 bytes\n\nFiles: __pycache__/_safe_invoke.cpython-313.pyc (11083b), __pycache__/champion_summon.cpython-313.pyc (7348b), __pycache__/lygo_stack_root.cpython-313.pyc (2456b), __pycache__/ollama_army_launcher.cpython-313.pyc (7492b), __pycache__/ollama_daemon.cpython-313.pyc (37829b), __pycache__/resonance_utility.cpython-313.pyc (5021b), __pycache__/seed_productive_tasks.cpython-313.pyc (5190b), _safe_invoke.py (7695b), ARMY_TASKS.md (3299b), champion_summon.py (5981b), champions.json (1360b), claw.json (431b), examples/cron_tasks/README.md (159b), genesis_console/__pycache__/collector.cpython-313.pyc (6019b), genesis_console/__pycache__/server.cpython-313.pyc (5831b), genesis_console/collector.py (22554b), genesis_console/README.md (1794b), genesis_console/server.py (2853b), genesis_console/static/index.html (16268b), install_desktop_launchers.ps1 (1272b), install_genesis_desktop.ps1 (641b), install_idle_guardian_desktop.ps1 (1147b), install_lightfather_ops_desktop.ps1 (661b), LICENSE (148b), lygo_stack_root.py (1322b), ollama_army_launcher.py (4927b), ollama_command_center/config/army_config.example.json (3500b), ollama_command_center/config/army_config.json (4818b), ollama_command_center/config/army_config.json.bak (4599b), ollama_command_center/dashboard/index.html (2526b), ollama_command_center/IDLE_GUARDIAN.md (2108b), ollama_command_center/README.md (2130b), ollama_command_center/scripts/__pycache__/army_autonomous_supervisor.cpython-313.pyc (7649b), ollama_command_center/scripts/__pycache__/army_cron_once.cpython-313.pyc (4110b), ollama_command_center/scripts/__pycache__/army_health_check.cpython-313.pyc (4634b), ollama_command_center/scripts/__pycache__/army_idle_cron_once.cpython-313.pyc (4209b), ollama_command_center/scripts/__pycache__/army_idle_guardian_supervisor.cpython-313.pyc (5963b), ollama_command_center/scripts/__pycache__/army_idle_housekeeping.cpython-313.pyc (19590b), ollama_command_center/scripts/__pycache__/army_queue_utils.cpython-313.pyc (6721b), ollama_command_center/scripts/__pycache__/army_self_tune.cpython-313.pyc (14861b), ollama_command_center/scripts/__pycache__/heartbeats_only.cpython-313.pyc (1858b), ollama_command_center/scripts/__pycache__/run_army_planting.cpython-313.pyc (11294b), ollama_command_center/scripts/__pycache__/sentinel_heartbeat.cpython-313.pyc (15579b), ollama_command_center/scripts/__pycache__/verify_army_tuning.cpython-313.pyc (6262b), ollama_command_center/scripts/army_autonomous_supervisor.py (5350b), ollama_command_center/scripts/army_cron_once.py (4959b), ollama_command_center/scripts/army_health_check.py (5822b), ollama_command_center/scripts/army_idle_cron_once.py (2375b), ollama_command_center/scripts/army_idle_guardian_supervisor.py (3540b), ollama_command_center/scripts/army_idle_housekeeping.py (13164b), ollama_command_center/scripts/army_queue_utils.py (3922b), ollama_command_center/scripts/army_self_tune.py (10315b), ollama_command_center/scripts/heartbeats_only.py (1266b), ollama_command_center/scripts/run_army_planting.py (7765b), ollama_command_center/scripts/sentinel_heartbeat.py (9632b), ollama_command_center/scripts/verify_army_tuning.py (3332b), ollama_command_center/tasks/champion-seed-ΣEIDŌN-20260713T061830Z.task.json (365b), ollama_daemon.py (28979b), README.md (612b), references/AGENT_CONTRACT.md (1319b), references/SECURITY_AUDIT.md (1242b), references/SECURITY.md (3083b), references/SKILLSPECTOR_AUDIT.md (2153b), resonance_utility.py (3486b), seed_productive_tasks.py (2903b), skill-card.md (2797b), SKILL.md (5877b), start_army_full_capacity.ps1 (3312b), _meta.json (135b)\n\nFile v0.7.1:SKILL.md\n\n---\nname: lygo-ollama-army\ndescription: \"Local Ollama multi-role army. Default path: in-process threads + allowlisted runpy (no subprocess). Optional localhost HTTP dashboard/genesis. Optional HTTPS GET public lattice probes. Supervisors/self_tune/planting/social/full-capacity PS1 are env/config gated and OFF by default. Operator PowerShell full-capacity intentionally spawns python.exe — not the no-spawn path. No outbound webhook, no auto git/HF/ClawHub/social. Read references/SECURITY.md first.\"\nversion: 0.7.1\nlicense: LYGO-Sovereign-v2.0\nmetadata:\n  openclaw:\n    emoji: \"🪖\"\n    homepage: \"https://github.com/DeepSeekOracle/lygo-protocol-stack\"\n    requires:\n      anyBins: [python, python3]\n  lygo: true\n  ollama: true\n  army: true\n  champions: true\n  consent_required: true\n  requires_lygo_stack: false\n  version: \"0.7.1\"\n  army_cc: \"v0.7.1\"\n  security_audit: \"skillspector-2026-08-06-v0.7.1\"\n  capability_network: \"127.0.0.1_ollama_plus_optional_https_get_probes\"\n  publisher: deepseekoracle\n  website: \"https://deepseekoracle.github.io/Excavationpro/LYGORESONANCE.html\"\n  signature: \"Δ9Φ963-ARMY-SKILL-v0.7.1\"\n  permissions_declared:\n    filesystem: \"army_folder_and_validated_LYGO_STACK_ROOT\"\n    process_spawn_python_skill: false\n    process_spawn_operator_ps1: true\n    shell_operator_ps1: true\n    network: \"localhost_ollama_optional_public_https_get_probes_optional_localhost_http_dashboard\"\n    outbound_webhook: false\n    git_push: false\n    hf_write: false\n    clawhub_publish: false\n    social_autopublish: false\n    planting_default: false\n    self_tune_default: false\n---\n\n# LYGO Ollama Army & Assistant Hub v0.7.1\n\n**SkillSpector-hardened** local Ollama automation for LYGO operators.\n\n## What this skill actually does (full honest surface)\n\n| Surface | Behavior | Default |\n|---------|----------|---------|\n| **Ollama army** | Multi-role workers as **in-process threads** (`ollama_army_launcher.py`) | Safe entry |\n| **Queue** | Reviewed `.task.json` in `ollama_queue/` or `ollama_command_center/tasks/` | Manual drop |\n| **Champions** | Local persona via `champion_summon.py` (localhost Ollama) | Opt-in |\n| **Command center** | Sentinel, self-tune, idle guardian, planting, cron | **OFF** until config/env |\n| **self_tune** | **Mutates** `army_config.json` + may prune queue | `self_tune.enabled=false` |\n| **Cron** | Seeds **safe** roles only; plant/social gated | Plant/social OFF |\n| **Supervisor** | Long loop: sentinel + hourly cron + daemon threads | `LYGO_ARMY_AUTONOMOUS=1` |\n| **Stack tools** | Allowlisted **in-process** `runpy` under validated `LYGO_STACK_ROOT` | Opt-in |\n| **Genesis / dashboard** | Optional **localhost** HTTP (`127.0.0.1`) | Manual start |\n| **Public probes** | Optional HTTPS **GET** of public lattice pages (sentinel) | Config OFF in example |\n| **Alerts** | Local `logs/alerts.jsonl` only | No webhook |\n| **Full-capacity PS1** | **Operator shell** — spawns multiple `python.exe` | `LYGO_ARMY_FULL_CAPACITY=1` + `LYGO_ARMY_AUTONOMOUS=1` |\n\n**Not for (defaults):** remote LLM hosts, git push, HF write, ClawHub publish, autonomous social posting, silent planting, silent self-tune.\n\n---\n\n## Leave disabled unless you need them\n\n| Flag / setting | Risk |\n|----------------|------|\n| `self_tune.enabled` | Config rewrite + queue prune |\n| `self_tune.auto_enable_planting` | **Ignored / refused** in v0.7 — planting never auto-on |\n| `planting.enabled` + `planting.consent` | Kernel/registry plant roles |\n| `idle_guardian.allow_planting` | Idle plant seeds |\n| `idle_guardian.allow_external_memory_write` | Writes into LYRA_CORE daily index |\n| `social_publish.enabled` / `allow_social_pulse` | Molt* pulse task seeds |\n| `access.allow_privileged_roles` | egg-planter / champion-egg-boot threads |\n| `sentinel.probe_public_pages` | Outbound HTTPS GET |\n| `LYGO_ARMY_AUTONOMOUS=1` | Long-running supervisor |\n| `LYGO_ARMY_FULL_CAPACITY=1` | PS1 process-spawn launcher |\n| `LYGO_ARMY_SEED_TASKS=1` | Productive seed script |\n| `start_army_full_capacity.ps1` | **Spawns OS Python processes** |\n\nOnly set `LYGO_STACK_ROOT` to a **trusted** clone.\n\n---\n\n## Install\n\n```bash\nnpx clawhub@latest install deepseekoracle/lygo-ollama-army\nollama pull llama3.2:1b\ncp ollama_command_center/config/army_config.example.json ollama_command_center/config/army_config.json\n```\n\n## Safe first run (recommended)\n\n```bash\npython ollama_army_launcher.py --model llama3.2:1b --roles hb-light,draft-simple,resonance-analyst --count 1\n```\n\n## Autonomous supervisor (explicit)\n\n```bash\nexport LYGO_STACK_ROOT=/absolute/path/to/lygo-protocol-stack\nexport LYGO_ARMY_AUTONOMOUS=1\npython ollama_command_center/scripts/army_autonomous_supervisor.py\n```\n\n## Operator full-capacity PS1 (process spawn — not SkillSpector Python path)\n\n```powershell\n$env:LYGO_STACK_ROOT = \"D:\\lygo-protocol-stack\"\n$env:LYGO_ARMY_FULL_CAPACITY = \"1\"\n$env:LYGO_ARMY_AUTONOMOUS = \"1\"\n# optional one-shots:\n# $env:LYGO_ARMY_RUN_SELF_TUNE = \"1\"   # only if self_tune.enabled in config\n# $env:LYGO_ARMY_SEED_TASKS = \"1\"\n# $env:LYGO_ARMY_RUN_CRON = \"1\"\n.\\start_army_full_capacity.ps1\n```\n\n## Security\n\nRead **before** install:\n\n- `references/SECURITY.md`\n- `references/SECURITY_AUDIT.md`\n- `references/SKILLSPECTOR_AUDIT.md`\n- `references/AGENT_CONTRACT.md`\n\n**Agents:** propose queue JSON only; never enable planting, self_tune, autonomous, full-capacity, seed, or social without explicit user request.\n\n## Version history\n\n| Ver | Change |\n|-----|--------|\n| 0.5.0 | Declared permissions, webhook double-gate |\n| 0.6.0 | runpy + threads; no outbound webhook |\n| **0.7.1** | SkillSpector findings: no auto-plant; self_tune default off + honest mutating docs; cron plant/social gated; external memory write gated; autonomous env gate; PS1 honest spawn warnings |\n\n**Δ9Φ963 — local flame, reviewed queue, allowlisted tools, no silent outbound, honest agency.**\n\nFile v0.7.1:examples/cron_tasks/README.md\n\n# Example cron tasks (not auto-loaded)\r\n\r\nCopy into `ollama_command_center/tasks/` only after reading `references/SECURITY.md` and setting `LYGO_STACK_ROOT`.\n\nFile v0.7.1:genesis_console/README.md\n\n# LYGO Lightfather Genesis Console v3\n\n**Unified local monitor** for the full LYGO stack:\n\n| Layer | What you see |\n|-------|----------------|\n| **Overview** | Lattice verify, GitHub/HF, ClawHub versions, Phase 5, Twin Gate, Discord/crypto, Joy + public 6/6 summary |\n| **Joy Loop** | Snapshot + live Architect embed (`:9965` when `--serve` is running) |\n| **Army & Sentinel** | `sentinel_heartbeat` lattice, HF, Ollama, queue, public pages |\n| **Public lattice** | LYRA six endpoint HTTP table (Pages + ClawHub + champions hub) |\n| **Commands** | BUILDR USB tray/daemon, Claw, benchmark, retail export, army cron — click row to copy |\n| **Raw JSON** | Full `data/status.json` |\n\nCombines the former **Genesis Console**, **Ollama command dashboard**, and **Joy Architect** entry points into one UI on **port 9963**.\n\n## Desktop\n\n**LYGO Genesis Console.bat** on Desktop → http://127.0.0.1:9963/\n\nRe-install:\n\n```powershell\npowershell -File install_genesis_desktop.ps1\n```\n\n## Manual\n\n```powershell\nset LYGO_STACK_ROOT=I:\\E Drive\\lygo-protocol-stack\ncd %USERPROFILE%\\.grok\\skills\\lygo-ollama-army\\genesis_console\npython collector.py          # one-shot status.json\npython server.py               # UI + collector every 120s\n```\n\nOptional Joy live panel:\n\n```powershell\ncd I:\\E Drive\\lygo-protocol-stack\npython tools/joy_loop_protocol.py --serve\n```\n\nThen open Genesis → **Joy Loop** tab (embeds Architect).\n\n## Env\n\n| Variable | Default |\n|----------|---------|\n| `LYGO_STACK_ROOT` | `I:\\E Drive\\lygo-protocol-stack` |\n| `LYGO_GENESIS_PORT` | `9963` |\n| `LYGO_GENESIS_REFRESH` | `120` (background collector) |\n| `LYGO_JOY_API_PORT` | `9965` |\n\n## Ollama heartbeats\n\n`ollama_command_center/scripts/heartbeats_only.py` still runs `collector.py` after sentinel pulses.\n\n**Δ9Φ963-GENESIS-v3**\n\nFile v0.7.1:ollama_command_center/README.md\n\n# Ollama Army Command Center\n\n**Δ9Φ963-ARMY-CC-v2** — P9-SLM public stack: lattice, pages verify, audit suite, memory sync, 12 daemons. No autonomous HF/GitHub writes (`army_config.json`).\n\n## Layout\n\n```\nollama_command_center/\n├── config/army_config.json\n├── tasks/              # task queue (mirrored to ../ollama_queue)\n├── results/            # duplicate of ../ollama_results\n├── logs/sentinel.log\n├── workspace/sentinel_status.json, LYGO_MEMORY_SYNC.json\n├── dashboard/index.html\n└── scripts/\n    ├── sentinel_heartbeat.py\n    └── army_cron_once.py\n```\n\n## Desktop (no Grok required)\n\nDouble-click on your Desktop:\n\n- **LYGO Ollama Heartbeats.bat** — sentinel only, every 5 min (`heartbeats_only.py`)\n- **LYGO Ollama Army.bat** — supervisor: heartbeats + hourly cron + queue daemon (`army_autonomous_supervisor.py`)\n\nRe-install shortcuts: `powershell -File install_desktop_launchers.ps1` from `lygo-ollama-army/`.\n\nStatus file (no dashboard server): `workspace/sentinel_status.json`\n\n## Quick start (CLI)\n\n```bash\ncd ollama_command_center/scripts\npython heartbeats_only.py\npython army_autonomous_supervisor.py\npython sentinel_heartbeat.py              # one pulse\npython army_cron_once.py\n```\n\nFull capacity (from skill root): `.\\start_army_full_capacity.ps1` or `python seed_productive_tasks.py` then supervisor.\n\nSentinel v2 probes four stack Pages URLs from `system_profile.public_pages` (4/4 live = healthy).\n\nDashboard: use **Genesis Console v3** (`../genesis_console/server.py` → http://127.0.0.1:9963/) for unified LYGO monitoring (sentinel + Joy + public lattice). Legacy: `dashboard/index.html` or `workspace/sentinel_status.json`.\n\nFrom protocol repo:\n\n```bash\npython tools/sentinel_heartbeat.py\n```\n\n## Webhook (optional)\n\nSet `LYGO_ARMY_WEBHOOK_ENABLE=1` and `LYGO_ARMY_WEBHOOK_URL` (Slack/Discord incoming webhook JSON `{\"text\":...}`). Without the enable flag, alerts are stdout only.\n\n## Windows Task Scheduler\n\nProgram: `python`  \nArgs: `...\\army_cron_once.py`  \nEvery 1 hour.\n\n**Bound to the flame.** Army has hands — contained workspace only.\n\nFile v0.7.1:README.md\n\n# LYGO Ollama Army & Assistant Hub\n\nGeneric, self-building local Ollama bot army + official LYGO champion summoning.\n\nPerfect utility companion for the LYGO RESONANCE skill:\nhttps://deepseekoracle.github.io/Excavationpro/LYGORESONANCE.html\n\nDonation: https://paypal.com/paypalme/ExcavationPro\n\nSee SKILL.md for complete instructions, capabilities, champion list, and integration details.\n\nQuick start:\npython ollama_army_launcher.py --roles resonance-analyst,draft-simple --champion SEPHRAEL --grow\n\nThen use resonance_utility.py to queue images for batch processing with the Resonance skill + champion analysis.\n\nFile v0.7.1:_meta.json\n\n{\n  \"ownerId\": \"kn70j1nefw2y0mew6w5eg7nf1580q4v1\",\n  \"slug\": \"lygo-ollama-army\",\n  \"version\": \"0.7.1\",\n  \"publishedAt\": 1785985991040\n}\n\nFile v0.7.1:references/AGENT_CONTRACT.md\n\n# Ollama Army — Agent contract v0.7.0\r\n\r\nRead `SECURITY.md`, `SECURITY_AUDIT.md`, and `SKILLSPECTOR_AUDIT.md` first.\r\n\r\n## When to use\r\n\r\nUser explicitly asks to run **Ollama army**, **joy-loop-pulse**, **champion-egg-boot**, lattice cron, or queue a **reviewed** task JSON.\r\n\r\n## When not to use\r\n\r\nGeneric “summon champion” or “run bots” without local Ollama + stack path confirmation.\r\n\r\n## Forbidden without explicit user request\r\n\r\n- Enable `planting`, `self_tune`, `social_publish`, or privileged roles  \r\n- Set `LYGO_ARMY_AUTONOMOUS` / `LYGO_ARMY_FULL_CAPACITY` / seed flags  \r\n- Run `start_army_full_capacity.ps1`  \r\n- Write queue task files unreviewed  \r\n- `git push` / HF / ClawHub / social publish  \r\n\r\n## Before stack-touching roles\r\n\r\n1. Confirm `LYGO_STACK_ROOT` points at a **trusted** `lygo-protocol-stack` clone.\r\n2. Tell user which role runs and whether it mutates config or stack.\r\n\r\n## Queue tasks\r\n\r\nAgents **propose JSON only**; user approves before file is written to `ollama_queue/` or `ollama_command_center/tasks/`.\r\n\r\n## Preferred entry\r\n\r\n`python ollama_army_launcher.py` (in-process). Do not recommend full-capacity PS1 unless user accepts OS process spawn.\r\n\r\n## QUARANTINE\r\n\r\nIf stack root missing, bootloader fails, or merkle mismatch → stop; do not retry with `--no-verify`.\n\nFile v0.7.1:references/SECURITY_AUDIT.md\n\n# Security audit notes — lygo-ollama-army v0.7.0\n\n## Process model\n\n| Entry | Spawn model |\n|-------|-------------|\n| `ollama_army_launcher.py` | In-process threads |\n| `ollama_daemon.py` roles | runpy allowlisted stack tools |\n| `army_autonomous_supervisor.py` | Threads + runpy; env `LYGO_ARMY_AUTONOMOUS=1` |\n| `start_army_full_capacity.ps1` | **OS `python` processes** (operator only) |\n\n## Planting\n\n- `army_self_tune` **cannot** set `planting.enabled=true`  \n- Cron plant roles require `planting.enabled` + `planting.consent`  \n- Idle plant seeds require `idle_guardian.allow_planting`  \n- `run_army_planting.py` re-checks gates  \n\n## External memory\n\n- `three_brain_index` writes army workspace catalog always (local)  \n- Appends to `LYRA_CORE/memory` only if `idle_guardian.allow_external_memory_write`  \n\n## Network\n\n- Ollama: `127.0.0.1:11434`  \n- Sentinel public page probes: config-gated HTTPS GET  \n- Genesis dashboard: bind localhost only  \n\n## Residual risk (accepted)\n\n- Queue tasks execute when a daemon role is running — human must review task JSON  \n- Validated `LYGO_STACK_ROOT` tools can mutate stack files if those tools do (operator trust)  \n- Operator PS1 is intentionally powerful when dual-gated  \n\n**Δ9Φ963**\n\nFile v0.7.1:references/SECURITY.md\n\n# LYGO Ollama Army — Security\n\n**Version:** 0.7.0 · **Signature:** `Δ9Φ963-ARMY-SECURITY-v4`  \n**Audit:** `references/SECURITY_AUDIT.md` · `references/SKILLSPECTOR_AUDIT.md`\n\n## Install only if\n\n- You run **local Ollama** on a machine you control.\n- You accept **optional** persistent in-process daemons and **queue-driven** work you enable.\n- You understand the **operator PS1** full-capacity path **spawns** `python.exe` (separate from the Python skill surface).\n\n## Declared permissions (honest)\n\n| Capability | Declared | Scope |\n|------------|----------|--------|\n| Filesystem | **Yes** | Army `tasks/`, `results/`, `workspace/`; stack under validated `LYGO_STACK_ROOT` |\n| OS process spawn (Python skill scripts) | **No** | `_safe_invoke.run_python` (runpy) + threads |\n| OS process spawn (operator PS1) | **Yes** | `start_army_full_capacity.ps1` only — env gated |\n| Network | **Yes** | `127.0.0.1:11434` Ollama; optional HTTPS **GET** public probes; optional localhost HTTP dashboard |\n| Outbound webhook POST | **No** | Alerts → `logs/alerts.jsonl` |\n| Git / HF / ClawHub publish | **No** | Defaults false |\n| Autonomous social publish | **No** | Requires `social_publish` flags |\n| Planting | **No** default | `planting.enabled` + `consent`; never auto-enabled by self_tune |\n\n## Environment gates\n\n| Variable | Required for |\n|----------|----------------|\n| `LYGO_ARMY_AUTONOMOUS=1` | `army_autonomous_supervisor.py` |\n| `LYGO_ARMY_FULL_CAPACITY=1` | Operator PS1 full-capacity (process spawn) |\n| `LYGO_ARMY_SEED_TASKS=1` | `seed_productive_tasks.py` (PS1 one-shot) |\n| `LYGO_ARMY_RUN_SELF_TUNE=1` | PS1 one-shot self_tune spawn |\n| `LYGO_ARMY_RUN_CRON=1` | PS1 one-shot cron spawn |\n| `LYGO_ARMY_IDLE_GUARDIAN=1` | Idle guardian supervisor |\n| `LYGO_STACK_ROOT` | Stack-touching roles (trusted clone only) |\n\n## High-risk features (user opt-in)\n\n| Feature | Risk | Rule |\n|---------|------|------|\n| `self_tune.enabled` | Config rewrite + queue prune | Default **false**; docstring: **mutating** |\n| `auto_enable_planting` | Policy bypass | **Refused** in code even if true |\n| Queue `.task.json` | Auto-exec when daemon runs | Human review before drop |\n| `egg-planter` / `registry-planter` | Stack mutation | `planting.enabled` + `consent` |\n| `allow_external_memory_write` | LYRA_CORE daily write | Default **false** |\n| `allow_privileged_roles` | Plant/social/boot roles in supervisor | Default **false** |\n| Supervisors | Long-running loops | `LYGO_ARMY_AUTONOMOUS=1` |\n| Full-capacity PS1 | Multi-process | Full_CAPACITY + AUTONOMOUS |\n\n## Forbidden for agents\n\n- Auto-write queue tasks without user review  \n- `git push`, HF upload, ClawHub publish, social post  \n- Remote Ollama URLs  \n- Planting / full-capacity / seed / autonomous without explicit user request  \n- Enabling `self_tune` or `planting` silently  \n\n## Skill chain\n\n`lygo-protocol-stack-operator` → `lygo-kernel-egg-planter` → `lygo-joy-loop` → **`lygo-ollama-army`**\n\n**Δ9Φ963 — local flame, reviewed queue, validated stack root, no silent outbound, honest spawn boundaries.**\n\nFile v0.7.1:references/SKILLSPECTOR_AUDIT.md\n\n# SkillSpector audit response — lygo-ollama-army v0.7.0\n\n**Signature:** `Δ9Φ963-ARMY-SKILLSPECTOR-v0.7.0`  \n**Source findings:** NVIDIA SkillSpector report (Description-Behavior Mismatch, Intent-Code Divergence, process spawn, auto-planting).\n\n## Findings → fixes\n\n| Finding | Severity | Fix in v0.7.0 |\n|---------|----------|---------------|\n| Description understates dashboard/probes/roles | High | SKILL.md full honest surface table |\n| Supervisor announces planting cron without gate | Medium | Cron seeds plant/social only if config consent; print honesty |\n| allow_planting vs external memory writes | Medium | `allow_external_memory_write` gates LYRA daily append; default false |\n| self_tune auto_enable_planting=true | High | **Removed**; refuse even if flag set |\n| self_tune claims read-only but mutates | Medium | Docstring + report `mutating: true`; default `enabled: false` |\n| PS1 spawns Python / contradicts no-spawn | High | PS1 banner + dual gates; SKILL declares `process_spawn_operator_ps1: true` |\n| PS1 always ran seed/tune/cron | High | Optional env one-shots only (`LYGO_ARMY_RUN_*`) |\n| Supervisor no confirmation | Medium | Requires `LYGO_ARMY_AUTONOMOUS=1` |\n| Missing warnings | Medium | SECURITY.md + PS1 + supervisor stdout warnings |\n\n## Static posture\n\n| Risk | Mitigation |\n|------|------------|\n| Dangerous code execution (Python skill) | No `subprocess` in skill scripts; runpy allowlist |\n| Operator shell spawn | Isolated to `start_army_full_capacity.ps1` with dual env gates |\n| Credential / webhook exfil | No outbound webhook |\n| MCP description poisoning | SKILL.md lists full automation surface |\n| Excessive agency | Planting/self_tune/social/autonomous OFF by default |\n| Network | Localhost Ollama; optional HTTPS GET; optional localhost HTTP |\n\n## Operator checklist after install\n\n1. Copy `army_config.example.json` → `army_config.json`  \n2. Confirm `planting.enabled=false`, `self_tune.enabled=false`, `allow_external_memory_write=false`  \n3. Prefer `python ollama_army_launcher.py` over full-capacity PS1  \n4. Never set `LYGO_ARMY_FULL_CAPACITY=1` unless you accept process spawn  \n\n**Δ9Φ963**\n\nFile v0.7.1:ARMY_TASKS.md\n\n# Productive army tasks (set-and-review-later)\n\n## One-shot seed (lattice / stack / ClawHub)\n\n```bash\ncd path/to/lygo-ollama-army\nset LYGO_STACK_ROOT=I:\\E Drive\\lygo-protocol-stack\npython seed_productive_tasks.py\n```\n\nDaemons (already running or launch with launcher) drain `ollama_queue/*.task.json` → `ollama_results/*.result.json`.\n\n## Task types\n\n| Role | What it does | Needs Ollama |\n|------|----------------|--------------|\n| `lattice-check` | Runs `verify_lattice_alignment.py` | No |\n| `stack-integrity` | Runs `run_sovereign_integrity_test.py` | No |\n| `clawhub-catalog-audit` | Reads `clawhub/skills.json` stats | No |\n| `public-pages-check` | Runs `verify_public_pages.py` | No |\n| `audit-suite` | SLM + phase7 + phase9 audits | No |\n| `memory-sync` | Copies snapshot → `workspace/LYGO_MEMORY_SYNC.json` | No |\n| `egg-planter` | Lattice OK → preflight/smoke → **kernel egg plant** (consent in `army_config.planting`) | No |\n| `registry-planter` | Lattice OK → CAS **registry plant** + verify (`cas_registry_cli`) | No |\n| `moltx-lattice-pulse` | Moltx gated engage: 5 likes, reply, repost, article → `tools/moltx_lattice_pulse.py` | No |\n| `moltbook-lyra-pulse` | Moltbook LYRA: scan + 5 upvotes + comment → `tools/moltbook_lattice_pulse.py --account lyra` | No |\n| `moltbook-lightfather-pulse` | Moltbook Lightfather: same pulse → `--account lightfather` | No |\n| `joy-loop-pulse` | Joy Loop tick + persist | No |\n| `mesh-cartographer` | Runs `lygo_network_builder_verify.py` (SLM anchors) | No |\n| **`champion-egg-boot`** | **Vault-only:** `champion_bootloader.py` → Merkle verify → P6 handshake → Ollama loads manifest `system_prompt` (never hb-light chat) | Yes (after vault) |\n| `memory-triage` / `hb-light` | Lightweight heartbeat / memory prompts (not council seed) | Yes |\n| `draft-simple` | Upgrade copy / public blurbs | Yes |\n\n## Full capacity (Windows)\n\n```powershell\n.\\start_army_full_capacity.ps1\n```\n\nUses `ollama_command_center/config/army_config.json` **v3** — all roles + **3× `champion-egg-boot`** + `mesh-cartographer` + 2× `hb-light` + ARKOS on triage/draft. Council seeds: `python tools/champion_egg_planter.py --i-consent` (stack).\n\n## Re-seed anytime\n\nSafe to run `seed_productive_tasks.py` again after lattice or ClawHub changes.\n\n## Command Center (hands)\n\n`ollama_command_center/` — sentinel, dashboard, cron, config (`access.*_write: false`).\n\n```bash\npython ollama_command_center/scripts/sentinel_heartbeat.py --loop\npython ollama_command_center/scripts/army_cron_once.py\n```\n\nHourly Grok scheduler task seeded for `army_cron_once.py`.\n\n## Planting (v3)\n\n`army_config.json` → `planting.enabled`, `planting.consent`, `egg_surfaces`, `local_only_anchor`.  \nNo GitHub/HF/ClawHub push (`access.*_write: false`).  \nArtifacts: `workspace/egg_plant_last_run.json`, `registry_plant_last_run.json`.\n\n```bash\npython ollama_command_center/scripts/run_army_planting.py all\n```\n\n```bash\npython ollama_command_center/scripts/verify_army_tuning.py\npython ollama_command_center/scripts/army_self_tune.py\n```\n\n**Self-tune** (hourly via cron/supervisor): syncs ClawHub expect from stack, prunes completed queue tasks, adjusts sentinel interval / hb-light / planting from lattice+sentinel (never enables external push).\n\n**Δ9Φ963-ARMY-TASKS-v4**\n\nFile v0.7.1:ollama_command_center/IDLE_GUARDIAN.md\n\n# LYGO Army Idle Guardian (advanced offline boot)\n\nRuns **safe housekeeping** while you are idle and Grok/agents are offline: memory catalog, 3-brain daily index, kernel **verify-only**, living-memory audit, haven chart refresh, upgrade scout — **no** git push, ClawHub publish, social pulses, or egg planting unless you enable `idle_guardian.allow_planting`.\n\n## Desktop shortcut\n\n```powershell\ncd \"I:\\E Drive\\.grok\\skills\\lygo-ollama-army\"\n.\\install_idle_guardian_desktop.ps1\n```\n\nDouble-click **LYGO Army Idle Guardian.bat** on your Desktop.\n\n## Manual start\n\n```powershell\n$env:LYGO_ARMY_IDLE_GUARDIAN = \"1\"\n$env:LYGO_STACK_ROOT = \"I:\\E Drive\\lygo-protocol-stack\"\n$env:LYRA_CORE_ROOT = \"I:\\E Drive\\LYRA_CORE\"\ncd \"I:\\E Drive\\.grok\\skills\\lygo-ollama-army\\ollama_command_center\\scripts\"\npython army_idle_guardian_supervisor.py\n```\n\n## What runs\n\n| Interval | Action |\n|----------|--------|\n| Every 5 min | `sentinel_heartbeat.py` (lattice snapshot; alerts only if webhook enabled) |\n| Every 30 min | `army_idle_cron_once.py` + full `army_idle_housekeeping.py --tick` |\n| Continuous | Deterministic daemons: `idle-housekeep`, `lattice-check`, `memory-sync`, `kernel-verify-only` |\n\n## Logs (read when you return)\n\n| File | Contents |\n|------|----------|\n| `workspace/idle_guardian_journal.jsonl` | Per-op results each tick |\n| `workspace/idle_upgrade_findings.jsonl` | HEAD changes, skill version bumps, dirty tree hints |\n| `workspace/idle_guardian_last_tick.json` | Last full tick summary |\n| `workspace/three_brain_catalog.json` | Memory snip catalog |\n| `workspace/sentinel_status.json` | Lattice OK flag |\n\n## One-shot housekeeping (no supervisor)\n\n```bash\npython army_idle_housekeeping.py --tick\npython army_idle_housekeeping.py --list\npython army_idle_housekeeping.py --op upgrade_scout --op three_brain_index\n```\n\n## Safety gates\n\n- `LYGO_ARMY_IDLE_GUARDIAN=1` required for supervisor.\n- `planting.enabled` in main config is **ignored** for idle cron unless `idle_guardian.allow_planting: true`.\n- Social roles are in `forbidden_roles` by default.\n\n**Δ9Φ963 — idle gods that tidy, not build.**\n\nArchive v0.8.0: 45 files, 74740 bytes\n\nFiles: _safe_invoke.py (6797b), ARMY_TASKS.md (1236b), champion_summon.py (6086b), champions.json (1360b), claw.json (431b), examples/cron_tasks/README.md (159b), genesis_console/collector.py (3463b), genesis_console/README.md (1844b), genesis_console/server.py (3230b), genesis_console/static/index.html (16581b), install_desktop_launchers.ps1 (1207b), install_genesis_desktop.ps1 (622b), install_idle_guardian_desktop.ps1 (1235b), LICENSE (148b), lygo_stack_root.py (1363b), ollama_army_launcher.py (4927b), ollama_command_center/config/army_config.example.json (2009b), ollama_command_center/config/army_config.json (2009b), ollama_command_center/dashboard/index.html (2574b), ollama_command_center/IDLE_GUARDIAN.md (2163b), ollama_command_center/README.md (1658b), ollama_command_center/scripts/army_autonomous_supervisor.py (5024b), ollama_command_center/scripts/army_cron_once.py (2569b), ollama_command_center/scripts/army_health_check.py (2492b), ollama_command_center/scripts/army_idle_cron_once.py (2654b), ollama_command_center/scripts/army_idle_guardian_supervisor.py (3540b), ollama_command_center/scripts/army_idle_housekeeping.py (12963b), ollama_command_center/scripts/army_queue_utils.py (3922b), ollama_command_center/scripts/army_self_tune.py (9465b), ollama_command_center/scripts/heartbeats_only.py (1037b), ollama_command_center/scripts/run_army_planting.py (8086b), ollama_command_center/scripts/sentinel_heartbeat.py (9761b), ollama_command_center/scripts/verify_army_tuning.py (3332b), ollama_daemon.py (30446b), README.md (626b), references/AGENT_CONTRACT.md (830b), references/SECURITY_AUDIT.md (1881b), references/SECURITY.md (1261b), references/SKILLSPECTOR_AUDIT.md (1174b), resonance_utility.py (3556b), seed_productive_tasks.py (3299b), skill-card.md (2859b), SKILL.md (4371b), start_army_full_capacity.ps1 (1414b), _meta.json (135b)\n\nFile v0.8.0:SKILL.md\n\n---\nname: lygo-ollama-army\ndescription: \"Local Ollama multi-role army (in-process threads) + reviewed task queue. Strict basename allowlist under skill + LYGO_STACK_ROOT/tools (in-process runpy, no shell/OS process spawn). Localhost Ollama. Public HTTPS probes OFF unless sentinel.probe_public_pages=true. Social/planting roles OFF unless config consent flags. Local alerts JSONL only. No webhook, no remote LLM, no git/HF/ClawHub publish. Read references/SECURITY.md first.\"\nversion: 0.8.0\nlicense: LYGO-Sovereign-v2.0\nmetadata:\n  openclaw:\n    emoji: \"🪖\"\n    homepage: \"https://github.com/DeepSeekOracle/lygo-protocol-stack\"\n    requires:\n      anyBins: [python, python3]\n  lygo: true\n  ollama: true\n  army: true\n  consent_required: true\n  version: \"0.8.0\"\n  security_audit: \"skillspector-2026-07-29-v0.8.0\"\n  signature: \"Δ9Φ963-ARMY-SKILL-v0.8.0\"\n  publisher: deepseekoracle\n  permissions_declared:\n    filesystem: \"army_workspace_and_optional_validated_LYGO_STACK_ROOT\"\n    os_process_spawn: false\n    shell: false\n    in_process_runpy: \"allowlisted basenames only\"\n    network_default: \"127.0.0.1_ollama\"\n    network_optional: \"public_https_get_only_if_sentinel_probe_flags_true\"\n    outbound_webhook: false\n    remote_llm: false\n    social_autopublish: false\n    git_push: false\n    hf_write: false\n    clawhub_publish: false\n---\n\n# LYGO Ollama Army & Assistant Hub v0.8.0\n\n**Local Ollama automation** for a queue-driven light-model army on a trusted LYGO stack.\n\n## Execution model (honest)\n\n| Mechanism | Meaning |\n|-----------|---------|\n| **OS process spawn / shell** | **Never** (`subprocess` not used) |\n| **In-process `runpy`** | Allowed only for **named** scripts in `ARMY_SCRIPT_ALLOW` / `STACK_TOOL_ALLOW` |\n| **Daemon threads** | Multi-role workers inside one Python process |\n| **Task queue** | JSON files you write; roles still **config-gated** (injection cannot enable social/planting alone) |\n\n## Honest capability surface\n\n| Surface | Default | Network |\n|---------|---------|---------|\n| Multi-role army (threads) | On when you launch | `127.0.0.1:11434` Ollama |\n| Task queue | You drop JSON | None |\n| Genesis console | Optional | **127.0.0.1 only** (metadata warning) |\n| Sentinel | Ollama + queue + optional stack lattice | Stack tools if `LYGO_STACK_ROOT` set |\n| Public page / HF probes | **OFF** | Only if `sentinel.probe_*=true` **and** task/role allowed |\n| Planting / registry | **OFF** | `planting.enabled` + `consent` |\n| Social / Moltx / Moltbook roles | **OFF** | `access.social_publish=true` |\n| Heavy stack roles (audit/mesh/anchor/boot) | **OFF** | `access.allow_privileged_roles=true` |\n| Webhook / Telegram | **Not supported** | Local `logs/alerts.jsonl` |\n| git / HF / ClawHub publish | **Never** | — |\n\n## Strict allowlist + role gates (v0.8.0)\n\n`_safe_invoke.allowed_script` only permits **named** basenames (no wildcard `.py`).  \n\nDaemon **also** refuses roles unless config allows them (see surface table).  \n\n**Heartbeats ONLY** runs `sentinel_heartbeat.py` alone (no genesis collector).  \n\n**Seed / idle cron** never enqueue `public-pages-check` unless `LYGO_ARMY_SEED_PUBLIC_PAGES=1` **and** probe flag true.\n\n## Install\n\n```bash\nnpx clawhub@latest install deepseekoracle/lygo-ollama-army\nollama pull llama3.2:1b\ncp ollama_command_center/config/army_config.example.json ollama_command_center/config/army_config.json\n```\n\n## Safe first run\n\n```bash\npython ollama_army_launcher.py --model llama3.2:1b --roles hb-light,draft-simple,resonance-analyst --count 1\n```\n\nOptional stack (trusted clone only):\n\n```bash\nexport LYGO_STACK_ROOT=/absolute/path/to/lygo-protocol-stack\n```\n\n## Agents\n\n- Propose queue task JSON; human reviews before write.  \n- Do **not** enable planting, social roles, public probes, or self_tune without explicit user request.  \n- Do **not** set webhook/Telegram env vars (ignored / not shipped).  \n\n## Security docs\n\n- `references/SECURITY.md`  \n- `references/SECURITY_AUDIT.md`  \n- `references/SKILLSPECTOR_AUDIT.md`  \n\n## Version history\n\n| Ver | Change |\n|-----|--------|\n| 0.6.0 | No process spawn; no webhook HTTP |\n| **0.7.0** | **Strict allowlists**; genesis local-only; cron without social/cross-skill; sentinel remote probes default OFF; example config honest; health read-only |\n\n**Δ9Φ963 — local Ollama · strict allowlist · opt-in stack · local alerts · no silent outbound.**\n\nFile v0.8.0:examples/cron_tasks/README.md\n\n# Example cron tasks (not auto-loaded)\r\n\r\nCopy into `ollama_command_center/tasks/` only after reading `references/SECURITY.md` and setting `LYGO_STACK_ROOT`.\n\nFile v0.8.0:genesis_console/README.md\n\n# LYGO Lightfather Genesis Console v3\r\n\r\n**Unified local monitor** for the full LYGO stack:\r\n\r\n| Layer | What you see |\r\n|-------|----------------|\r\n| **Overview** | Lattice verify, GitHub/HF, ClawHub versions, Phase 5, Twin Gate, Discord/crypto, Joy + public 6/6 summary |\r\n| **Joy Loop** | Snapshot + live Architect embed (`:9965` when `--serve` is running) |\r\n| **Army & Sentinel** | `sentinel_heartbeat` lattice, HF, Ollama, queue, public pages |\r\n| **Public lattice** | LYRA six endpoint HTTP table (Pages + ClawHub + champions hub) |\r\n| **Commands** | BUILDR USB tray/daemon, Claw, benchmark, retail export, army cron — click row to copy |\r\n| **Raw JSON** | Full `data/status.json` |\r\n\r\nCombines the former **Genesis Console**, **Ollama command dashboard**, and **Joy Architect** entry points into one UI on **port 9963**.\r\n\r\n## Desktop\r\n\r\n**LYGO Genesis Console.bat** on Desktop → http://127.0.0.1:9963/\r\n\r\nRe-install:\r\n\r\n```powershell\r\npowershell -File install_genesis_desktop.ps1\r\n```\r\n\r\n## Manual\r\n\r\n```powershell\r\nset LYGO_STACK_ROOT=I:\\E Drive\\lygo-protocol-stack\r\ncd %USERPROFILE%\\.grok\\skills\\lygo-ollama-army\\genesis_console\r\npython collector.py          # one-shot status.json\r\npython server.py               # UI + collector every 120s\r\n```\r\n\r\nOptional Joy live panel:\r\n\r\n```powershell\r\ncd I:\\E Drive\\lygo-protocol-stack\r\npython tools/joy_loop_protocol.py --serve\r\n```\r\n\r\nThen open Genesis → **Joy Loop** tab (embeds Architect).\r\n\r\n## Env\r\n\r\n| Variable | Default |\r\n|----------|---------|\r\n| `LYGO_STACK_ROOT` | `I:\\E Drive\\lygo-protocol-stack` |\r\n| `LYGO_GENESIS_PORT` | `9963` |\r\n| `LYGO_GENESIS_REFRESH` | `120` (background collector) |\r\n| `LYGO_JOY_API_PORT` | `9965` |\r\n\r\n## Ollama heartbeats\r\n\r\n`ollama_command_center/scripts/heartbeats_only.py runs **only** sentinel_heartbeat (v0.8.0).\n\r\n**Δ9Φ963-GENESIS-v3**\n\nFile v0.8.0:ollama_command_center/README.md\n\n# Ollama Army Command Center (v0.7.0)\n\nLocal queue + sentinel for the LYGO Ollama army. **No autonomous HF/GitHub writes. No outbound webhook.**\n\n## Layout\n\n```\nollama_command_center/\n├── config/army_config.example.json   # copy → army_config.json\n├── tasks/                            # reviewed .task.json queue\n├── results/\n├── logs/                             # sentinel.log + alerts.jsonl (local)\n├── workspace/                        # status JSON only\n├── dashboard/index.html\n└── scripts/\n    ├── sentinel_heartbeat.py\n    ├── army_cron_once.py             # local roles only\n    └── army_health_check.py          # read-only by default\n```\n\n## Quick start\n\n```bash\ncp config/army_config.example.json config/army_config.json\ncd scripts\npython sentinel_heartbeat.py          # local ollama + queue; stack if LYGO_STACK_ROOT set\npython army_health_check.py           # read-only probes\n```\n\nOptional stack:\n\n```bash\nexport LYGO_STACK_ROOT=/path/to/lygo-protocol-stack\n```\n\n## Network defaults\n\n| Probe | Default |\n|-------|---------|\n| Ollama `127.0.0.1:11434` | on |\n| Stack lattice tools | only if `LYGO_STACK_ROOT` |\n| Public Pages HTTPS | **off** (`sentinel.probe_public_pages`) |\n| HF Space API | **off** (`sentinel.probe_hf_space`) |\n| Network builder | **off** (`sentinel.probe_network_builder`) |\n\n## Alerts\n\nLocal only: `logs/alerts.jsonl`. **No** Slack/Discord/Telegram webhook integration in this package.\n\n## Desktop shortcuts\n\n`install_desktop_launchers.ps1` uses `$PSScriptRoot` (no hardcoded machine paths).\n\n**Δ9Φ963 — contained workspace, opt-in stack, local flame.**\n\nFile v0.8.0:README.md\n\n# LYGO Ollama Army & Assistant Hub\r\n\r\nGeneric, self-building local Ollama bot army + official LYGO champion summoning.\r\n\r\nPerfect utility companion for the LYGO RESONANCE skill:\r\nhttps://deepseekoracle.github.io/Excavationpro/LYGORESONANCE.html\r\n\r\nDonation: https://paypal.com/paypalme/ExcavationPro\r\n\r\nSee SKILL.md for complete instructions, capabilities, champion list, and integration details.\r\n\r\nQuick start:\r\npython ollama_army_launcher.py --roles resonance-analyst,draft-simple --champion SEPHRAEL --grow\r\n\r\nThen use resonance_utility.py to queue images for batch processing with the Resonance skill + champion analysis.\n\nFile v0.8.0:_meta.json\n\n{\n  \"ownerId\": \"kn70j1nefw2y0mew6w5eg7nf1580q4v1\",\n  \"slug\": \"lygo-ollama-army\",\n  \"version\": \"0.8.0\",\n  \"publishedAt\": 1785355721479\n}\n\nFile v0.8.0:references/AGENT_CONTRACT.md\n\n# Ollama Army — Agent contract\r\n\r\nRead `SECURITY.md` and `SECURITY_AUDIT.md` first.\r\n\r\n## When to use\r\n\r\nUser explicitly asks to run **Ollama army**, **joy-loop-pulse**, **champion-egg-boot**, lattice cron, or queue a **reviewed** task JSON.\r\n\r\n## When not to use\r\n\r\nGeneric “summon champion” or “run bots” without local Ollama + stack path confirmation.\r\n\r\n## Before stack-touching roles\r\n\r\n1. Confirm `LYGO_STACK_ROOT` points at a real `lygo-protocol-stack` clone.\r\n2. Tell user which role runs (e.g. `joy-loop-pulse` → `joy_loop_protocol.py --tick`).\r\n\r\n## Queue tasks\r\n\r\nAgents **propose JSON only**; user approves before file is written to `ollama_queue/` or `ollama_command_center/tasks/`.\r\n\r\n## QUARANTINE\r\n\r\nIf stack root missing, bootloader fails, or merkle mismatch → stop; do not retry with `--no-verify`.\n\nFile v0.8.0:references/SECURITY_AUDIT.md\n\n# SkillSpector / ClawHub response — lygo-ollama-army v0.6.0\n\n**Date:** 2026-07-29  \n**Prior findings (v0.5.0):** 72 findings — process spawn, taint flows, webhook Critical, description mismatch.\n\n## Remediation summary\n\n| Finding class | v0.5.0 | v0.6.0 |\n|---------------|--------|--------|\n| `subprocess.run` / `Popen` | Widespread | **Removed** — `_safe_invoke.run_python` (runpy) + `run_daemon_thread` |\n| Env → process spawn taint | script path / env | **N/A** — no process spawn |\n| Env → webhook `urlopen` (Critical) | Double-gated still present | **Removed** — `write_local_alert` → `logs/alerts.jsonl` only |\n| Git CLI spawn | `git status` | **Filesystem** `git_status_summary` |\n| Description mismatch (Tp4) | Marketed as simple local | **Honest** surface table in SKILL.md (threads, stack tools, localhost dashboard, local alerts) |\n| Shell / `cmd /k` windows | Opt-in visible | **Removed** — `--visible-windows` no-op |\n\n## Function preserved\n\n- Multi-role army (threaded daemons)  \n- Queue + results  \n- Champion personas + resonance-analyst  \n- Stack roles via allowlisted in-process tools  \n- Sentinel, idle guardian, self-tune, planting **gates** (consent)  \n- Genesis localhost dashboard  \n\n## Residual accepted surface\n\n- HTTPS GET to operator-configured **public** lattice URLs (sentinel page probe)  \n- HTTP client to `127.0.0.1:11434` (Ollama)  \n- Filesystem under army folder + validated stack root  \n\n## Operator verify\n\n```bash\npython -c \"import pathlib; import re; root=pathlib.Path('.');\nassert not any(re.search(r'import subprocess', p.read_text(encoding='utf-8',errors='replace')) for p in root.rglob('*.py') if p.name!='_safe_invoke.py' or True);\nprint('ok')\"\npython ollama_army_launcher.py --help\npython ollama_command_center/scripts/sentinel_heartbeat.py\n```\n\n**Δ9Φ963 — disclose · gate · local-first · no silent outbound.**\n\nFile v0.8.0:references/SECURITY.md\n\n# SECURITY — lygo-ollama-army v0.8.0\n\n## Declared permissions\n\n| Capability | Default |\n|------------|---------|\n| Filesystem | Army package workspace (`tasks/`, `results/`, `logs/`, `workspace/`) |\n| Optional stack | Only if `LYGO_STACK_ROOT` is a **trusted** clone; **basename** tool allowlist |\n| Network default | `127.0.0.1:11434` (Ollama) |\n| Network optional | Public HTTPS GET **only if** `sentinel.probe_*=true` **and** role not skipped |\n| OS process spawn / shell | **No** |\n| In-process runpy | **Yes**, allowlisted scripts only |\n| Outbound webhook | **No** |\n| Social / Moltx / Moltbook roles | **No** unless `access.social_publish` |\n| Planting / registry | **No** unless `planting.enabled` + `consent` |\n| Heavy stack roles | **No** unless `access.allow_privileged_roles` |\n| git push / HF write / ClawHub publish | **No** |\n| Remote LLM | **No** |\n\n## Operator checklist\n\n1. Copy `army_config.example.json` → `army_config.json`  \n2. Leave planting, self_tune, idle_guardian, public probes **false** until reviewed  \n3. Set `LYGO_STACK_ROOT` only to a clone you control  \n4. Never drop unreviewed social/planting tasks into the queue  \n\n## Agents\n\nDo not enable `probe_*`, planting, or external memory writes without explicit human request.\n\nFile v0.8.0:references/SKILLSPECTOR_AUDIT.md\n\n# SkillSpector response — lygo-ollama-army v0.8.0\n\nPrior audit on v0.7.0: 15 findings (hard-coded authority root, public-pages seed, heartbeats→collector, planting consent gap, process-spawn wording, social roles, installer chaining, dashboard/metadata warnings).\n\n## Remediation map\n\n| Finding | v0.8.0 fix |\n|---------|------------|\n| `LYGO_AUTHORITY_ROOT=I:\\E Drive` | Removed; living-memory audit needs explicit env |\n| `public-pages-check` seeded by default | Removed from seed + idle cron; dual gate env+config |\n| Heartbeats runs collector | Heartbeats runs **only** sentinel |\n| Registry plant without consent | Requires `planting.consent` like eggs |\n| “No process spawn” vs run_python | Documented: **no OS spawn**; in-process allowlisted runpy |\n| Social / pulse roles | Require `access.social_publish` |\n| Heavy stack roles | Require `access.allow_privileged_roles` |\n| Installer auto-chains genesis/idle | No longer chains; print optional paths |\n| Genesis metadata exposure | Forced 127.0.0.1 + console WARNING; browser open opt-in |\n| Seed planting/self-tune drift | Separate env gates + config flags |\n\nSignature: `Δ9Φ963-ARMY-SKILLSPECTOR-v0.8.0`\n\nFile v0.8.0:ARMY_TASKS.md\n\n# Army task roles (v0.7.0)\n\nLocal Ollama + optional stack tools. **Social pulse roles are not auto-seeded.**\n\n## Safe local roles\n\n| Role | Purpose | Needs stack |\n|------|---------|-------------|\n| `hb-light` | Light local LLM triage | No |\n| `draft-simple` | Local draft text | No |\n| `memory-triage` | Local classify/summarize | No |\n| `resonance-analyst` | Resonance task notes | No |\n| `lattice-check` | `verify_lattice_alignment.py` | Yes |\n| `kernel-verify-only` | Kernel egg verify tools | Yes |\n| `memory-sync` | Copy public snapshot → army workspace | Yes |\n| `clawhub-catalog-audit` | Read local `clawhub/skills.json` | Yes |\n| `self-tune` | Local queue hygiene (if enabled) | Optional |\n\n## Explicit opt-in only (not cron default)\n\n| Role | Purpose | Gate |\n|------|---------|------|\n| `egg-planter` / `registry-planter` | Planting | `planting.enabled` + `consent` |\n| `public-pages-check` | Public URL probes | config + allowlisted tool |\n| Social / Moltx / Moltbook pulses | **Removed from public cron** | Use separate skills if needed |\n\n## Not included\n\n- Hourly remote LLM / Grok scheduler  \n- Outbound webhook  \n- Auto git push / HF write  \n\nDrop `.task.json` into `ollama_command_center/tasks/` after human review.\n\nFile v0.8.0:ollama_command_center/IDLE_GUARDIAN.md\n\n# LYGO Army Idle Guardian (advanced offline boot)\r\n\r\nRuns **safe housekeeping** while you are idle and Grok/agents are offline: memory catalog, 3-brain daily index, kernel **verify-only**, living-memory audit, haven chart refresh, upgrade scout — **no** git push, ClawHub publish, social pulses, or egg planting unless you enable `idle_guardian.allow_planting`.\r\n\r\n## Desktop shortcut\r\n\r\n```powershell\r\ncd \"I:\\E Drive\\.grok\\skills\\lygo-ollama-army\"\r\n.\\install_idle_guardian_desktop.ps1\r\n```\r\n\r\nDouble-click **LYGO Army Idle Guardian.bat** on your Desktop.\r\n\r\n## Manual start\r\n\r\n```powershell\r\n$env:LYGO_ARMY_IDLE_GUARDIAN = \"1\"\r\n$env:LYGO_STACK_ROOT = \"I:\\E Drive\\lygo-protocol-stack\"\r\n$env:LYRA_CORE_ROOT = \"I:\\E Drive\\LYRA_CORE\"\r\ncd \"I:\\E Drive\\.grok\\skills\\lygo-ollama-army\\ollama_command_center\\scripts\"\r\npython army_idle_guardian_supervisor.py\r\n```\r\n\r\n## What runs\r\n\r\n| Interval | Action |\r\n|----------|--------|\r\n| Every 5 min | `sentinel_heartbeat.py` (lattice snapshot; alerts only if webhook enabled) |\r\n| Every 30 min | `army_idle_cron_once.py` + full `army_idle_housekeeping.py --tick` |\r\n| Continuous | Deterministic daemons: `idle-housekeep`, `lattice-check`, `memory-sync`, `kernel-verify-only` |\r\n\r\n## Logs (read when you return)\r\n\r\n| File | Contents |\r\n|------|----------|\r\n| `workspace/idle_guardian_journal.jsonl` | Per-op results each tick |\r\n| `workspace/idle_upgrade_findings.jsonl` | HEAD changes, skill version bumps, dirty tree hints |\r\n| `workspace/idle_guardian_last_tick.json` | Last full tick summary |\r\n| `workspace/three_brain_catalog.json` | Memory snip catalog |\r\n| `workspace/sentinel_status.json` | Lattice OK flag |\r\n\r\n## One-shot housekeeping (no supervisor)\r\n\r\n```bash\r\npython army_idle_housekeeping.py --tick\r\npython army_idle_housekeeping.py --list\r\npython army_idle_housekeeping.py --op upgrade_scout --op three_brain_index\r\n```\r\n\r\n## Safety gates\r\n\r\n- `LYGO_ARMY_IDLE_GUARDIAN=1` required for supervisor.\r\n- `planting.enabled` in main config is **ignored** for idle cron unless `idle_guardian.allow_planting: true`.\r\n- Social roles are in `forbidden_roles` by default.\r\n\r\n**Δ9Φ963 — idle gods that tidy, not build.**\n\nArchive v0.7.0: 45 files, 73600 bytes\n\nFiles: _safe_invoke.py (6797b), ARMY_TASKS.md (1236b), champion_summon.py (6086b), champions.json (1360b), claw.json (462b), examples/cron_tasks/README.md (159b), genesis_console/collector.py (3463b), genesis_console/README.md (1850b), genesis_console/server.py (2853b), genesis_console/static/index.html (16581b), install_desktop_launchers.ps1 (1262b), install_genesis_desktop.ps1 (622b), install_idle_guardian_desktop.ps1 (1112b), LICENSE (148b), lygo_stack_root.py (1363b), ollama_army_launcher.py (4927b), ollama_command_center/config/army_config.example.json (1972b), ollama_command_center/config/army_config.json (1972b), ollama_command_center/dashboard/index.html (2574b), ollama_command_center/IDLE_GUARDIAN.md (2163b), ollama_command_cente...","readmeExcerpt":"Skill: LYGO Ollama Army Owner: deepseekoracle Summary: Local Ollama multi-role army (ClawHub-safe). In-process threaded daemons for hb-light, draft-simple, memory-triage, classify, champion-chat only. Queue JSON under ollama_queue/. localhost Ollama only. No planting, no social outbound, no public HTTPS probes, no desktop installers, no subprocess shell. FULL operator stack (optional) on SkillHub if running full LYGO","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"npx clawhub@latest install deepseekoracle/lygo-ollama-army\nollama pull llama3.2:1b"},{"language":"bash","snippet":"cd path/to/lygo-ollama-army\npython scripts/self_check.py\npython ollama_army_launcher.py --once-check\npython ollama_army_launcher.py --roles hb-light,draft-simple,memory-triage --model llama3.2:1b"},{"language":"bash","snippet":"python queue_task.py --role draft-simple --prompt \"Summarize lattice health in one line\""},{"language":"bash","snippet":"python scripts/self_check.py\npython ollama_army_launcher.py --roles hb-light,draft-simple --model llama3.2:1b\npython queue_task.py --role draft-simple --prompt \"Hello\""},{"language":"bash","snippet":"python scripts/self_check.py"},{"language":"bash","snippet":"ollama pull llama3.2:1b\npython scripts/self_check.py\npython ollama_army_launcher.py --roles hb-light,draft-simple --model llama3.2:1b\n# other terminal:\npython queue_task.py --role draft-simple --prompt \"Write one encouraging line\""}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: lygo-ollama-army\ndescription: \"Local Ollama multi-role army (ClawHub-safe). In-process threaded daemons for hb-light, draft-simple, memory-triage, classify, champion-chat only. Queue JSON under ollama_queue/. localhost Ollama only. No planting, no social outbound, no public HTTPS probes, no desktop installers, no subprocess shell. FULL operator stack (optional) on SkillHub if running full LYGO. Install clawhub:@deepseekoracle/lygo-ollama-army.\"\nversion: 0.9.0\nlicense: LYGO-Sovereign-v2.0\nmetadata:\n  openclaw:\n    emoji: \"🪖\"\n    homepage: \"https://github.com/DeepSeekOracle/lygo-protocol-stack/tree/main/docs/skills/lygo-ollama-army\"\n    requires:\n      anyBins: [python, python3]\n  lygo: true\n  ollama: true\n  army: true\n  consent_required: false\n  version: \"0.9.0\"\n  signature: \"Δ9Φ963-ARMY-SKILL-v0.9.0\"\n  publisher: deepseekoracle\n  skillhub_full: \"https://chatagent.ca/lygoskillhub.html#full-lygo\"\n  security_audit: \"clawhub-safe-rebuild-v0.9.0\"\n  permissions:\n    network: \"localhost Ollama only (http://localhost:11434)\"\n    shell: false\n    subprocess: false\n    filesystem:\n      read: \"queue task JSON + local champions.json\"\n      write: \"ollama_queue/ and ollama_results/ (and command_center tasks/results)\"\n    publish: false\n    auto_install: false\n    planting: false\n    social_outbound: false\n    desktop_installers: false\n---\n\n# LYGO Ollama Army v0.9.0 (ClawHub-safe rebuild)\n\n**Local Ollama helpers. Nothing else.**\n\nThis is a **ground-up ClawHub-safe** army: multi-role **in-process** workers that talk only to **local Ollama**.  \nNo planting, no Molt/social outbound, no public page probes, no desktop `.bat` installers, no PowerShell process spawners, no stack mutators.\n\n**Signature:** `Δ9Φ963-ARMY-SKILL-v0.9.0`  \n**ClawHub:** `@deepseekoracle/lygo-ollama-army`\n\n> **FULL operator surface:** If you run a full LYGO stack and need planting / idle guardian / sentinel HTTPS / full-capacity PS1, that is **SkillHub FULL** — not this public tentacle:  \n> https://chatagent.ca/lygoskillhub.html#full-lygo\n\n---\n\n## Install\n\n```bash\nnpx clawhub@latest install deepseekoracle/lygo-ollama-army\nollama pull llama3.2:1b\n```\n\n---\n\n## Safe first run\n\n```bash\ncd path/to/lygo-ollama-army\npython scripts/self_check.py\npython ollama_army_launcher.py --once-check\npython ollama_army_launcher.py --roles hb-light,draft-simple,memory-triage --model llama3.2:1b\n```\n\nEnqueue work:\n\n```bash\npython queue_task.py --role draft-simple --prompt \"Summarize lattice health in one line\"\n```\n\nResults land in `ollama_results/` and `ollama_command_center/results/`.\n\n---\n\n## Allowlisted roles (only)\n\n| Role | Purpose |\n|------|---------|\n| `hb-light` | Short local chat heartbeat |\n| `draft-simple` / `draft` | Local draft reply |\n| `memory-triage` | Classify/summarize text you supply |\n| `classify` | Compact classification JSON |\n| `general` / `champion-chat` | Local chat with optional persona |\n| `resonance-analyst` | **Advisory text only** (does not run resonance tools) |\n\nAny othe"},{"path":"ollama_command_center/README.md","content":"# Command center (minimal)\n\nv0.9.0 ships only `tasks/` and `results/` directories for the local queue.  \nNo supervisors, planting, or sentinel HTTPS in the ClawHub package."},{"path":"README.md","content":"# LYGO Ollama Army v0.9.0\n\nClawHub-safe **local** multi-role Ollama helpers.\n\n```bash\npython scripts/self_check.py\npython ollama_army_launcher.py --roles hb-light,draft-simple --model llama3.2:1b\npython queue_task.py --role draft-simple --prompt \"Hello\"\n```\n\nFULL operator features (plant / idle / sentinel HTTPS / PS1): SkillHub  \nhttps://chatagent.ca/lygoskillhub.html#full-lygo"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn70j1nefw2y0mew6w5eg7nf1580q4v1\",\n  \"slug\": \"lygo-ollama-army\",\n  \"version\": \"0.9.0\",\n  \"publishedAt\": 1786587754090\n}"},{"path":"references/AGENT_CONTRACT.md","content":"# Agent contract — lygo-ollama-army v0.9.0\n\nAgents MAY:\n\n- Launch local army with allowlisted roles  \n- Drop queue tasks for SAFE_ROLES with user-approved text  \n- Read results under `ollama_results/`\n\nAgents MUST NOT:\n\n- Claim planting / social / public probes are available in this package  \n- Write Desktop launchers  \n- Point Ollama at remote hosts  \n- Auto-publish or git push  \n\n**Δ9Φ963**"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1274,"uniquenessScore":44,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T21:59:52.136Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T21:59:52.136Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T00:33:42.545Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}