install.ps1 -Names task-loop → ~/.claude/skills/task-loop/SKILL.md (diff-identical to
source, v0.1.0). Post-/reload-plugins task-loop appears in available-skills with full
description (YAML parsed, RU/EN triggers present). Unblocks task-loop-test-trigger
(🔵→⚪ ready, needs clean session for live behavioral run).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Skill-review checkpoint for meta-host-routing v0.3.0 (non-implementer).
Behavioral smoke-test 8/8 via clean-context subagents: 5/5 positive
trigger phrases (RU+EN) route to meta-host-routing, 3/3 negatives routed
away (using-projects-meta / delegate-task[Skip-clause] / using-tasks).
Zero false positives. Steps verified against live infra: yt-tools resolves
to dedicated host OpeItcLoc03/meta-yt-tools (projects-meta tracks it),
.common grep returns hits, excludesFile + ~/.config/git/ignore + auth.toml
present. Failure modes -> STOP+ask; What-NOT-to-do accurate. No blocking
findings on the skill.
Observation (not a skill defect): the review-task acceptance criterion
'resolves .common' is stale — skill v0.3.0 and reality route yt-tools to
the dedicated meta-yt-tools host; .common now holds only the done-archive.
Caveat: -install and -hermes-mapping baselines remain open (skill not in
~/.claude/skills nor hermes/mapping.yaml); this review covers content +
trigger discrimination only, not live-harness activation.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Public reference for the on-disk .tasks/STATUS.md block format the autonomous
poller parses: header regex, status emoji, and the **Weight:** / **Notify:** /
**Requirements:** fields. Ships with factory where the internal wiki and MCP
source can't reach. Distinct from delegate-task (MCP-tool delegation) and
using-tasks (board mechanics).
Authored via superpowers:writing-skills TDD:
- RED: 3 baseline subagents w/o skill — 2/3 used ###/bullet headers the parser
cannot recognize as a task, 2/3 omitted **Weight:** (invented risk/tier/
claimable-by), 2/3 put notify in prose, 1/3 used 🟢 for a ready task.
- GREEN: 2 fresh subagents w/ skill — both parser-valid, incl. correct
**Weight:** needs-human for the critical-infra scenario.
- REFACTOR: no new format loopholes.
Ground truth verified vs live source (status-md.ts parser, claim.ts gate,
fleet-router.js routing): missing Weight finds no backend tier -> poller parks
to blocked, so Weight is operatively required for pickup.
Closes [create-task-format-for-poller-skill]. Install to ~/.claude/skills +
hermes mapping deferred as follow-up.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
needs-human keep-or-drop on the markitdown MCP tool + cross-cutting edit to
user-global ~/.claude.json. Verified live state (mcpServers.markitdown present,
container respawned, image 1.52GB) then called consult before mutating; returned
status:halt (consult_policy=human-only). Checkpointed without guessing past the
halt: board block → blocked, added per-task file with resume brief + decision
trail. No config/containers/image touched.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Reviewed the MCP→CLI rewrite of skills/using-markitdown/SKILL.md.
Acceptance (3/3) + 2 bonus checks, all green:
- No mcp__markitdown__ in SKILL.md (grep 0; only 2 negative "Docker"
mentions explaining the old mount caveat no longer applies).
- CLI examples correct: markitdown 0.1.6 on PATH; -o/-x/-m/stdin flags
match `markitdown --help` verbatim.
- Version bumped 1.0.0 -> 1.0.1 (PATCH).
- dist/using-markitdown.skill consistent (v1.0.1, no mcp refs).
Informational finding (non-blocking): at review time `docker ps` shows a
markitdown-mcp:latest container respawned from the out-of-scope
mcpServers.markitdown registration in ~/.claude.json. The impl removed the
existing containers correctly and flagged this respawn in the concept page.
Filed follow-up [using-markitdown-mcp-deregister] (needs-human: keep-or-drop
decision on the MCP registration).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replace all mcp__markitdown__convert_to_markdown invocations with the
native `markitdown <path|url>` CLI (v0.1.6, on PATH). Outputs to stdout
or `-o <file>`; sees the full host filesystem, so the Docker bind-mount
caveat (host→container file:// translation, [Errno 2] /c:/Users/...) is
gone and that whole section is removed. Updated the ingest pattern (-o
straight into .wiki/raw/), gotchas table (command-not-found → check
`markitdown --version`), and contrast table header (CLI, not MCP).
Description triggers unchanged. PATCH bump 1.0.0→1.0.1; dist artifact
rebuilt.
Decommissioned the Docker MCP containers: no container is named
`markitdown-mcp` (the server spawns anonymous ones from
markitdown-mcp:latest, 3 had piled up); removed all by image ancestor.
Left mcpServers.markitdown in ~/.claude.json untouched (out of scope) —
flagged as a follow-up in the concept page.
Wiki: concepts/using-markitdown-cli-migration.md + index + log.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Step 5 created the paired <slug>-review task without a `weight`, so fleet
routing/reconciler skipped it (root cause of manual patch c0af151). Now the
review task sets weight explicitly, inherited from the impl-task with a
needs-claude floor:
impl needs-human -> review needs-human
impl needs-claude -> review needs-claude
impl cheap-ok -> review needs-claude (floor)
Floor (not pure inheritance) keeps the doc internally consistent with the
existing "What NOT to do" bullet that forbids cheap-ok for review tasks.
Added a What-NOT-to-do bullet against weightless review tasks. PATCH bump.
Wiki: concepts/delegate-task-review-weight.md + index + log.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Reviewed using-tasks v1.3.0 STATUS.md-bloat fix + concept page.
- Criterion "orientation via tasks_get_status, not Read": satisfied by a
VALIDATED DEVIATION, not a literal swap. Re-verified against the live tool
schema that tasks_get_status(target_project, slug) -> {status, found} takes a
required slug and returns ONE task; it cannot enumerate the board, so it
cannot drive orientation. Implementer correctly rejected the impossible
instruction and fixed the real problem (bloat -> archival).
- No regression: orientation still reads local STATUS.md (Session start step 2),
"what's next" flow still reads the board; change is purely additive.
- Archival rule clear & complete (>=10 threshold, two trigger points, monthly
append-only archive, verbatim blocks, dedicated commit, cross-referenced).
Informational (non-blocking): this repo's own STATUS.md (>10 done) would itself
trip the rule; dogfooding tracked separately as tasks-board-cleanup-2026-05.
No follow-up tasks. Verdict appended to concept page + wiki log.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Non-implementer review of skills/using-system-snapshot (v0.1.0). All three
acceptance criteria pass:
- trigger phrases cover real scenarios (4/4 positives + clean negatives)
- no-claim-without-snapshot rule explicit (4 places)
- output format brief (three lines, verified vs live payload)
Evidence: live meta_system_snapshot call confirms the documented poller/docker/
tasks contract; 9 fresh-context subagents over a simulated registry (real
descriptions + using-vds-ops/using-projects-meta/using-tasks competitors) routed
8 cleanly, incl. no false-positive on a docker-compose.yml edit.
3 informational findings, none blocking:
1. cross-project task-count phrasings overlap with using-projects-meta (by-design)
2. local-container deep diagnosis unowned — vds-ops scope, not this skill
3. deployment scaffold missing — not installed, not in hermes/mapping.yaml,
no -install/-hermes-mapping/-test-trigger baseline tasks
No SKILL.md edits -> no version bump. TDD N/A (review of markdown policy).
Review outcome recorded in .wiki/concepts/using-system-snapshot-design.md + log.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>