feat(factory): register agents-task-runner standing-duty module

poller-service-deploy-via-factory (fork 1). New optional module
`agents-task-runner` — the standing-duty stack (task-runner + watchdog +
appeals-inbox) installed as OS-native services by the L2 setup skill.

- creates: setup_skill setup-agents-task-runner
- forward-looking `service:` block (run_as: user + 3 processes + health_check)
  for factory L1 Go-CLI; L0b bootstrap.ps1 ignores extra module fields
- nested processes use `- name:` not `- id:` so the bootstrap regex parser
  doesn't mis-ingest them as phantom modules
- factory_version 0.3.0 -> 0.4.0 (MINOR: new module)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-16 19:14:34 +03:00
parent 0275c2b7e3
commit b10f84c7e4

View File

@@ -8,7 +8,7 @@
# {home} — user home dir (~) # {home} — user home dir (~)
schema_version: "1" schema_version: "1"
factory_version: "0.3.0" factory_version: "0.4.0"
# ── Core (always installed) ────────────────────────────────────────────────── # ── Core (always installed) ──────────────────────────────────────────────────
# #
@@ -137,3 +137,36 @@ modules:
- type: local_clone - type: local_clone
repo: "{git_host}/{git_org}/.admin" repo: "{git_host}/{git_org}/.admin"
path: "{projects_dir}/.admin" path: "{projects_dir}/.admin"
- id: agents-task-runner
optional: true
description: "Standing-duty stack — task-runner + watchdog + appeals-inbox as OS-native services"
# Host node processes (mongo + reconciler stay in docker, own restart policy). Installed as
# platform-native services (systemd / launchd / winsw) by the L2 setup skill — no node window,
# OS-supervised autostart + crash-restart. Scope is runtime config (poller-scope.json),
# disarmed by default. Service templates: OpeItcLoc03/common @ lib/agents-task-runner/service/.
creates:
- type: setup_skill
skill: setup-agents-task-runner
# Forward-looking for factory L1 (Go-CLI, build-pending): the three supervised processes and
# their health probes. bootstrap.ps1 (L0b) reads only `- id:` for modules and ignores the rest;
# the L2 setup skill performs the actual install + verification.
service:
run_as: user # NOT root / LocalSystem — reads ~/.config, ~/.claude, git creds; spawns claude
# NOTE: nested keys use `- name:` (not `- id:`) on purpose — the L0b bootstrap.ps1 manifest
# parser treats every `- id:` line as a top-level component/module item and would otherwise
# mis-ingest these processes as phantom modules. `- name:` is invisible to that regex.
processes:
- name: agents-task-runner
health_check:
type: http
url: "http://localhost:3000"
- name: agents-task-runner-watchdog
health_check:
type: log_fresh
path: "watchdog.log"
max_age_s: 120
- name: agents-task-runner-appeals-inbox
health_check:
type: http
url: "http://127.0.0.1:4317"