feat(p7): SKILL.md registration for services launcher + remote access - #1085
Conversation
P7 Agent Interpreter discovery for two Pinokio apps: - pmoves-services: 4 Docker Compose profiles (core, voice, monitoring, external), status/stop/reset/update. 40+ microservices. Trigger phrases for natural language service control. - pmoves-remote: Headscale VPN mesh + RustDesk remote desktop. Fleet node inventory (Z890, 5090, 4090, Jetsons). Cross-machine routing. Phase 6 of P7 TAC tree (SKILL.md Registration). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
📝 WalkthroughWalkthroughThis pull request introduces two new Pinokio agent skill documentation files defining the PMOVES Remote Access and PMOVES Services Control Center orchestration interfaces, along with an agent note log update recording a completed infrastructure session for the Z890-CLAUDE scope. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…rhaul AGNOTE4482 RELEASE entry for z890-claude 2026-03-24/25 session: - 10 PRs merged, 3 open (DHI, P7 SKILL.md, embeddings) - C: 4.4GB→195GB (Docker vhdx moved to D:) - GHCR 403 fixed, publisher-discord published, Firefly activated - 44 DHI Dockerfile migrations, GitHub App TAC, Jetson TAC - Hardened branch reconciliation, W6 roadmap Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@pbnj/pinokio/api/pmoves-remote/SKILL.md`:
- Around line 35-44: The SKILL.md trigger table advertises actions that have no
runtime handlers; update the documentation or add mappings/scripts to match
actual runtime: either remove or narrow entries like "connect to 5090", "connect
to z890", and "list all nodes" in SKILL.md, or implement corresponding handlers
and register them in pbnj/pinokio/api/pmoves-remote/pinokio.js (the launcher
that currently exposes start.js, status.js, install.js) and add backing scripts
(e.g., connect-5090.js, connect-z890.js, list-nodes.js) to the remote launcher
so the phrases map to real functions. Ensure pinokio.js exports or routes those
new handlers with the same trigger phrases so docs and runtime are consistent.
- Line 63: Update the Headscale port mentioned in SKILL.md from 8181 to 8096 so
it matches the actual Headscale listen_addr; edit the single line referencing
the "Headscale control plane" in SKILL.md to show port 8096 and ensure the doc
text aligns with the Headscale config's listen_addr value.
In `@pbnj/pinokio/api/pmoves-services/SKILL.md`:
- Around line 56-93: The SKILL.md changes add/modify service ports and health
endpoints (e.g., Agent Zero, Hi-RAG v2, Flute-Gateway, Publisher-Discord) but
you did not update the canonical context docs; update
.claude/context/services-catalog.md to include the same service entries, port
numbers and health endpoints from SKILL.md (match exact names: "Agent Zero",
"Archon", "Extract Worker", "Hi-RAG v2", "Flute-Gateway", etc.), and update
.claude/context/nats-subjects.md to reflect any NATS subjects/announcer topology
introduced (e.g., Mesh Agent node announcer interval) so the operator
source-of-truth stays in sync with the SKILL.md changes.
- Line 59: Update the Agent Zero URL in SKILL.md from http://localhost:8080 to
http://localhost:8081 to match the launcher configuration; locate the Agent Zero
entry in SKILL.md and replace the port so the doc aligns with the runtime value
set via local.set (the launcher’s local configuration for Agent Zero).
In `@pmoves/docs/AGENTS/AGNOTE4482PHI.t1.md`:
- Line 97: The RELEASE line for `2026-03-25T01:30:00Z RELEASE Z890-CLAUDE` in
AGNOTE4482PHI.t1.md is missing the required CHIT handoff payload reference;
update the release entry (the RELEASE line for Z890-CLAUDE / AGNOTE4482) to
append a CHIT payload reference block that includes the required fields:
graphiti_mark, branch, pr_numbers, scope, risks, next_actions,
chit_artifact_path, and agent_signature, following the PHI collision-avoidance
protocol (include a CLAIM entry/update progress if missing, then publish the
CHIT payload reference, then finish with the RELEASE entry).
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 7157f935-94d7-465f-a200-b0684cde2321
📒 Files selected for processing (3)
pbnj/pinokio/api/pmoves-remote/SKILL.mdpbnj/pinokio/api/pmoves-services/SKILL.mdpmoves/docs/AGENTS/AGNOTE4482PHI.t1.md
| ## Trigger Phrases (Pinokio 7 Interpreter) | ||
|
|
||
| | Phrase | Action | | ||
| |--------|--------| | ||
| | `"show mesh status"` | Display Tailscale node connectivity | | ||
| | `"connect to 5090"` | Open RustDesk to POWERFULMOVES node | | ||
| | `"connect to z890"` | Open RustDesk to Z890 node | | ||
| | `"list all nodes"` | Display fleet inventory | | ||
| | `"check vpn health"` | Verify Headscale control plane | | ||
|
|
There was a problem hiding this comment.
Trigger phrases advertise actions without mapped runtime handlers.
This table claims actionable phrases like "connect to 5090" and "list all nodes", but the current remote launcher wiring only exposes start.js, status.js, and install.js (pbnj/pinokio/api/pmoves-remote/pinokio.js). Either add backing scripts/mappings or narrow this table to implemented actions.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@pbnj/pinokio/api/pmoves-remote/SKILL.md` around lines 35 - 44, The SKILL.md
trigger table advertises actions that have no runtime handlers; update the
documentation or add mappings/scripts to match actual runtime: either remove or
narrow entries like "connect to 5090", "connect to z890", and "list all nodes"
in SKILL.md, or implement corresponding handlers and register them in
pbnj/pinokio/api/pmoves-remote/pinokio.js (the launcher that currently exposes
start.js, status.js, install.js) and add backing scripts (e.g., connect-5090.js,
connect-z890.js, list-nodes.js) to the remote launcher so the phrases map to
real functions. Ensure pinokio.js exports or routes those new handlers with the
same trigger phrases so docs and runtime are consistent.
|
|
||
| - Tailscale or Headscale client installed on each node | ||
| - RustDesk server running (self-hosted or relay) | ||
| - Headscale control plane at port 8181 |
There was a problem hiding this comment.
Correct Headscale control-plane port.
Line 63 says port 8181, but current Headscale config listens on 8096 (pmoves/config/headscale/config.yaml, listen_addr). This prerequisite is currently incorrect.
Proposed doc fix
-- Headscale control plane at port 8181
+- Headscale control plane at port 8096📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - Headscale control plane at port 8181 | |
| - Headscale control plane at port 8096 |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@pbnj/pinokio/api/pmoves-remote/SKILL.md` at line 63, Update the Headscale
port mentioned in SKILL.md from 8181 to 8096 so it matches the actual Headscale
listen_addr; edit the single line referencing the "Headscale control plane" in
SKILL.md to show port 8096 and ensure the doc text aligns with the Headscale
config's listen_addr value.
| ## Service Profiles | ||
|
|
||
| ### Core (Agents + Workers) | ||
| - **Agent Zero** — `http://localhost:8080` (orchestrator, MCP API) | ||
| - **Archon** — `http://localhost:8091` (Supabase agent service) | ||
| - **Mesh Agent** — Node announcer (NATS every 15s) | ||
| - **Extract Worker** — `http://localhost:8083` (text embedding + indexing) | ||
| - **Hi-RAG v2** — `http://localhost:8086` (hybrid retrieval) | ||
|
|
||
| ### Voice | ||
| - **Flute-Gateway** — `http://localhost:8055` (prosodic voice synthesis) | ||
| - **Ultimate-TTS-Studio** — `http://localhost:7860` (14-engine TTS) | ||
| - **Cast-TTS** — `http://localhost:8060` (Chromecast/Nest speaker TTS) | ||
|
|
||
| ### Monitoring | ||
| - **Prometheus** — `http://localhost:9090` (metrics) | ||
| - **Grafana** — `http://localhost:3000` (dashboards) | ||
| - **Loki** — `http://localhost:3100` (log aggregation) | ||
|
|
||
| ### External | ||
| - **Wger (Health)** — `http://localhost:8000` (fitness tracking) | ||
| - **Firefly III (Wealth)** — `http://localhost:8075` (finance management) | ||
| - **Jellyfin** — Media server | ||
|
|
||
| --- | ||
|
|
||
| ## Health Checks | ||
|
|
||
| ```bash | ||
| # Quick check all core services | ||
| curl http://localhost:8080/healthz # Agent Zero | ||
| curl http://localhost:8086/ # Hi-RAG v2 | ||
| curl http://localhost:8094/healthz # Publisher-Discord | ||
| curl http://localhost:8055/healthz # Flute-Gateway | ||
|
|
||
| # Full verification | ||
| make -C pmoves verify-all | ||
| ``` |
There was a problem hiding this comment.
Sync service/health topology docs with canonical context files.
This file adds/changes service ports and health endpoints, but the PR does not include corresponding updates to .claude/context/services-catalog.md and .claude/context/nats-subjects.md, which creates drift in the operator source-of-truth.
As per coding guidelines, "Document NATS event topology in .claude/context/nats-subjects.md and maintain services catalog with port assignments and health endpoints in .claude/context/services-catalog.md."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@pbnj/pinokio/api/pmoves-services/SKILL.md` around lines 56 - 93, The SKILL.md
changes add/modify service ports and health endpoints (e.g., Agent Zero, Hi-RAG
v2, Flute-Gateway, Publisher-Discord) but you did not update the canonical
context docs; update .claude/context/services-catalog.md to include the same
service entries, port numbers and health endpoints from SKILL.md (match exact
names: "Agent Zero", "Archon", "Extract Worker", "Hi-RAG v2", "Flute-Gateway",
etc.), and update .claude/context/nats-subjects.md to reflect any NATS
subjects/announcer topology introduced (e.g., Mesh Agent node announcer
interval) so the operator source-of-truth stays in sync with the SKILL.md
changes.
| ## Service Profiles | ||
|
|
||
| ### Core (Agents + Workers) | ||
| - **Agent Zero** — `http://localhost:8080` (orchestrator, MCP API) |
There was a problem hiding this comment.
Fix Agent Zero port mismatch in docs.
Line 59 lists http://localhost:8080, but the launcher sets Agent Zero UI to http://localhost:8081 (pbnj/pinokio/api/pmoves-services/start-core.js, local.set). This will misroute operators.
Proposed doc fix
-- **Agent Zero** — `http://localhost:8080` (orchestrator, MCP API)
+- **Agent Zero** — `http://localhost:8081` (orchestrator, MCP API)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - **Agent Zero** — `http://localhost:8080` (orchestrator, MCP API) | |
| - **Agent Zero** — `http://localhost:8081` (orchestrator, MCP API) |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@pbnj/pinokio/api/pmoves-services/SKILL.md` at line 59, Update the Agent Zero
URL in SKILL.md from http://localhost:8080 to http://localhost:8081 to match the
launcher configuration; locate the Agent Zero entry in SKILL.md and replace the
port so the doc aligns with the runtime value set via local.set (the launcher’s
local configuration for Agent Zero).
|
|
||
| - `2026-03-23T23:25:00Z` CLAIM `Z890-CLAUDE` scope: Discord infrastructure — publisher-discord container rebuild from feat/discord-publisher-mcp (MCP shim + REST read endpoint). Fixed missing requirements.lock (replaced shim with direct deps). Fixed SSL_CERT_FILE Windows→Linux container leak (added neutralization to docker-compose.yml). Added DISCORD_BOT_TOKEN + DISCORD_WEBHOOK_URL env pass-through. MCP tools/list + tools/call validated. REST /channels/:id/messages validated. discord_read.py CLI validated (feat/discord-read-tool branch). Bot returns 403 — needs channel invite for 1394743475349622905. 2 stale branches deleted (feat/tts-service-runners-prosodic-ear, fix/coderabbit-review-sweep-1066-1069). W3 Discord Classrooms unblocked pending bot permissions. | ||
|
|
||
| - `2026-03-25T01:30:00Z` RELEASE `Z890-CLAUDE` scope: Full infrastructure session. 10 PRs merged (#1073-1083). Docker disk move C:→D: (4.4GB→195GB free). GHCR push 403 root-caused and fixed (permission-packages:write, PR #1083). Publisher-discord published to GHCR. Firefly III activated (port 8075). CI runner stabilized (PAT auth, persistent). 44 Dockerfiles migrated to DHI base images (PR #1084). P7 SKILL.md registration for services launcher + remote access (PR #1085). GitHub App TAC tree + runner 3-tier auth (PR #1080). Jetson Orin TAC + hardware profile (PR #1080). Hardened branch reconciliation (44-submodule gap analysis, PR #1080). W6 Life+Persona+Matrix roadmap written on AGNOTE4482. Pinokio 40GB crash-loop log identified (procs.js V8 RangeError) and truncated. 7 credential types audited. 3 memories updated. Handoff: #1084 (DHI) + #1085 (P7 SKILL.md) ready for review. GHCR build run dispatched. 5090 trimming #1082 in worktree. |
There was a problem hiding this comment.
Add CHIT handoff payload reference to this release entry.
The new release line logs handoff readiness but does not include a CHIT payload reference with required handoff fields (graphiti_mark, branch, pr_numbers, scope, risks, next_actions, chit_artifact_path, agent_signature).
As per coding guidelines, "follow the PHI collision-avoidance protocol: write a CLAIM entry, update progress ... publish a CHIT payload reference for handoff ... and finish with a RELEASE entry."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@pmoves/docs/AGENTS/AGNOTE4482PHI.t1.md` at line 97, The RELEASE line for
`2026-03-25T01:30:00Z RELEASE Z890-CLAUDE` in AGNOTE4482PHI.t1.md is missing the
required CHIT handoff payload reference; update the release entry (the RELEASE
line for Z890-CLAUDE / AGNOTE4482) to append a CHIT payload reference block that
includes the required fields: graphiti_mark, branch, pr_numbers, scope, risks,
next_actions, chit_artifact_path, and agent_signature, following the PHI
collision-avoidance protocol (include a CLAIM entry/update progress if missing,
then publish the CHIT payload reference, then finish with the RELEASE entry).
Three Phase 6 nodes were effectively shipped but still marked pending: - p7.skillmd.format: self-evident from 5 existing SKILL.md files - p7.skillmd.services: shipped in PR #1085 (pbnj/pinokio/api/pmoves-services/SKILL.md) - p7.skillmd.tts: shipped at pmoves/docs/ARTSTUFF/Ultimate-TTS-Studio.git/SKILL.md Phase 6 parent node also marked done. P7 now at 55% completion. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat(p7): add Model Registry SKILL.md for P7 Agent Interpreter discovery Registers the PMOVES Model Registry (port 8110) as a P7-discoverable service with 10 trigger phrases covering model catalog queries, HuggingFace enrichment, TensorZero config export, and GPU deployment tracking. TAC node p7.nats.model-discovery: pending → done. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs(agents): model-discovery done + z890 PR review notes Step 9 continuation: z890 PR review (PR #1084 DHI migration clean, PR #1085 SKILL.md registration clean), Model Registry SKILL.md shipped, updated remaining P7 Phase 7 nodes table. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs(tac): mark P7 Phase 6 SKILL.md nodes as done (8/20 → 11/20) Three Phase 6 nodes were effectively shipped but still marked pending: - p7.skillmd.format: self-evident from 5 existing SKILL.md files - p7.skillmd.services: shipped in PR #1085 (pbnj/pinokio/api/pmoves-services/SKILL.md) - p7.skillmd.tts: shipped at pmoves/docs/ARTSTUFF/Ultimate-TTS-Studio.git/SKILL.md Phase 6 parent node also marked done. P7 now at 55% completion. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Summary
pmoves-services— P7 Agent Interpreter can discover and control 40+ Docker Compose services via natural languagepmoves-remote— P7 discovers Headscale VPN mesh + RustDesk fleet accessTest plan
python -c "import yaml; yaml.safe_load(open('...SKILL.md').read().split('---')[1])"🤖 Generated with Claude Code
Summary by CodeRabbit
Release Notes