Commit Graph

456 Commits

Author SHA1 Message Date
71f4690e6a meta(tasks): refresh board header — task-loop-test-trigger closed, all 3 baselines done
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 18:12:14 +03:00
2b87a0f009 meta(tasks): close [task-loop-test-trigger] in OpeItcLoc03/claude-skills 2026-06-11 15:10:38 +00:00
8b46c75381 meta(tasks): close [task-loop-test-trigger] — VERDICT PASS (baseline 3/3)
Live clean-session run (this session did NOT install the skill). Probe
confirmed subagents inherit the REAL installed registry (task-loop present,
description verbatim = SKILL.md) — upgrade over dev-time simulated proxy.

Trigger-discrimination: positives 6/6 -> task-loop; negatives clean
(delegate-task, using-tasks after deconfound, configure-poller -> none with
explicit task-loop exclusion); task-loop false-positive 0/3.

Behavioral (skill body loaded) 4/4: consult-gate human-only -> STOP before
close; session_break -> SESSION BOUNDARY + STOP; empty -> stop+report no poll;
long-watch -> single ScheduleWakeup >=1200s, not CronCreate.

Finding (informational, non-blocking): session_break is the fragile gate — its
STOP semantics live only in the body (step 6), invert to soft-checkpoint when
reasoning from description alone; correct with body loaded. No fix needed
(rule triple-stated; using-tasks is REQUIRED SUB-SKILL). No follow-up filed.

All 3 task-loop deployment baselines (install / hermes-mapping / test-trigger)
now closed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 18:04:50 +03:00
1433fd80ea meta(handoff): regen NEXT_SESSION — task-loop install+hermes-mapping closed, test-trigger next (clean session)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 17:52:53 +03:00
74a94a6696 feat(hermes): map task-loop as pending (intended auto/mcp)
task-loop orchestrates the projects-meta board cycle (tasks_claim_next /
tasks_close / tasks_update / tasks_heartbeat) and may arm a long ScheduleWakeup —
critical-infra-adjacent, so it lands in the behavioral-audit pending tier, not auto.
Promotion to auto gated on task-loop-test-trigger. Schema version untouched.

Closes [task-loop-hermes-mapping] (baseline 2/3).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 17:52:10 +03:00
e07413fec3 meta(tasks): close [task-loop-install] — installed + verified visible in available-skills
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>
2026-06-11 17:47:59 +03:00
036e0d59d9 meta(handoff): regen NEXT_SESSION for task-loop deployment leg
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 17:41:22 +03:00
47fc8065f5 meta(tasks): create [task-loop-test-trigger] in OpeItcLoc03/claude-skills 2026-06-11 14:38:25 +00:00
025e16a660 meta(tasks): create [task-loop-hermes-mapping] in OpeItcLoc03/claude-skills 2026-06-11 14:38:09 +00:00
dd44b90b91 meta(tasks): create [task-loop-install] in OpeItcLoc03/claude-skills 2026-06-11 14:37:57 +00:00
abfb450af7 meta(tasks): close [task-loop-skill] in OpeItcLoc03/claude-skills 2026-06-11 14:37:45 +00:00
0016c458d1 feat(task-loop): new skill for in-session board draining v0.1.0
Interactive claim -> work -> close -> repeat loop in the current session;
no daemon, no spawned claude, no busy-poll. Coordinates with using-tasks
(.tasks/.lock, session_break gate, 10-min claim TTL -> tasks_heartbeat) and
project-discipline (push Rule 4, sensitive artifacts).

TDD (writing-skills RED-GREEN-REFACTOR):
- RED: 2 clean-context subagents revealed gaps A-E (claim scope, missed
  session_break + .lock, consult-gate boundary, paused-vs-blocked).
- GREEN: SKILL.md addresses all five; compliance subagent B clean.
- REFACTOR: closed CronCreate loophole in long-watch (separate session =
  daemon); mandate ScheduleWakeup on this session. Re-test passed.

Semver: 0.1.0 (initial).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 17:33:35 +03:00
9168a14ab7 meta(tasks): update [task-loop-skill] in OpeItcLoc03/claude-skills 2026-06-11 14:21:07 +00:00
21f9f0c554 meta(tasks): update [task-loop-skill] in OpeItcLoc03/claude-skills 2026-06-11 13:48:32 +00:00
1192a7694b meta(tasks): create [task-loop-skill] in OpeItcLoc03/claude-skills 2026-06-11 13:36:11 +00:00
13abe176fd feat(using-tasks): session lock guard v1.4.0
Adds `.tasks/.lock` awareness to the `using-tasks` skill:

- Session start new step 1: read `.tasks/.lock`; if type:"agent" with
  heartbeat ≤10 min → hard warning + require user confirmation; stale
  lock (TTL expired) → silently overwrite; absent/cleared → write
  type:"interactive" lock (120-min TTL).
- Session end new step 1: delete `.tasks/.lock` when type:"interactive".
- Structure section: `.lock` entry with gitignored callout.
- Rules bullet: "Honour `.tasks/.lock`".
- `.gitignore`: adds `.tasks/.lock` (ephemeral runtime state).
- dist/using-tasks.skill rebuilt.

Closes [using-tasks-session-lock].

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 12:57:48 +03:00
ca438216a6 meta(tasks): heartbeat [using-tasks-session-lock] in OpeItcLoc03/claude-skills 2026-06-11 09:57:07 +00:00
44752d3ed8 meta(tasks): claim [using-tasks-session-lock] in OpeItcLoc03/claude-skills by DESKTOP-NSEF0UK:claude-sonnet:26920 2026-06-11 09:52:05 +00:00
0e7e0c065a meta(tasks): close [meta-host-routing-review] — VERDICT PASS
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>
2026-06-11 12:47:30 +03:00
14f22033f3 meta(tasks): heartbeat [meta-host-routing-review] in OpeItcLoc03/claude-skills 2026-06-11 09:45:08 +00:00
a3c9660ee8 meta(tasks): claim [meta-host-routing-review] in OpeItcLoc03/claude-skills by DESKTOP-NSEF0UK:claude-opus:21356 2026-06-11 09:40:05 +00:00
2885563698 meta(tasks): update [using-tasks-session-lock] in OpeItcLoc03/claude-skills 2026-06-11 09:39:48 +00:00
6124d4e11b meta(tasks): update [meta-host-routing-review] in OpeItcLoc03/claude-skills 2026-06-11 09:39:47 +00:00
a71ed9bf07 feat(task-format): new skill v0.1.0 — poller task-block format reference
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>
2026-06-11 12:23:25 +03:00
76c86a793f meta(tasks): heartbeat [create-task-format-for-poller-skill] in OpeItcLoc03/claude-skills 2026-06-11 09:19:08 +00:00
362f713626 meta(tasks): heartbeat [create-task-format-for-poller-skill] in OpeItcLoc03/claude-skills 2026-06-11 09:14:08 +00:00
641f06e0b9 meta(tasks): claim [create-task-format-for-poller-skill] in OpeItcLoc03/claude-skills by DESKTOP-NSEF0UK:claude-opus:30508 2026-06-11 09:09:05 +00:00
ca3442f763 meta(tasks): update [create-task-format-for-poller-skill] in OpeItcLoc03/claude-skills 2026-06-11 08:47:14 +00:00
aba8c4ca4b meta(tasks): create [create-task-format-for-poller-skill] in OpeItcLoc03/claude-skills 2026-06-11 08:39:20 +00:00
a95f35f93c meta(tasks): close [using-markitdown-mcp-deregister] in OpeItcLoc03/claude-skills 2026-06-09 18:00:53 +00:00
93c33d63b5 meta(tasks): park [using-markitdown-mcp-deregister] for human (consult halt)
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>
2026-06-09 20:59:05 +03:00
bfcd7f5dca meta(tasks): decision-trail [using-markitdown-mcp-deregister] consult in OpeItcLoc03/claude-skills 2026-06-09 17:54:15 +00:00
c1c471fa50 meta(tasks): park-question [using-markitdown-mcp-deregister] → human in OpeItcLoc03/claude-skills 2026-06-09 17:54:15 +00:00
3af2c26ca6 meta(tasks): claim [using-markitdown-mcp-deregister] in OpeItcLoc03/claude-skills by DESKTOP-NSEF0UK:claude-opus:11584 2026-06-09 17:52:46 +00:00
6c6627f0c4 meta(tasks): close [using-markitdown-cli-rewrite-review] in OpeItcLoc03/claude-skills 2026-06-09 17:52:35 +00:00
0d3dbfe3ee meta(tasks): close [using-markitdown-cli-rewrite-review] — VERDICT PASS
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>
2026-06-09 20:52:00 +03:00
efd21fba5e meta(tasks): claim [using-markitdown-cli-rewrite-review] in OpeItcLoc03/claude-skills by DESKTOP-NSEF0UK:claude-opus:11584 2026-06-09 17:48:52 +00:00
8dec900684 meta(tasks): update [using-markitdown-cli-rewrite-review] in OpeItcLoc03/claude-skills 2026-06-09 17:48:49 +00:00
c063fc8b73 meta(tasks): close [using-markitdown-cli-rewrite] in OpeItcLoc03/claude-skills 2026-06-09 17:48:42 +00:00
fdc94e08cf refactor(using-markitdown): rewrite MCP→CLI, drop Docker section v1.0.1
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>
2026-06-09 20:48:18 +03:00
d812944b0e meta(tasks): claim [using-markitdown-cli-rewrite] in OpeItcLoc03/claude-skills by DESKTOP-NSEF0UK:claude-opus:11584 2026-06-09 17:44:03 +00:00
3300b5faea meta(tasks): create [using-markitdown-cli-rewrite-review] in OpeItcLoc03/claude-skills 2026-06-09 17:44:02 +00:00
e1b2101593 meta(tasks): create [using-markitdown-cli-rewrite] in OpeItcLoc03/claude-skills 2026-06-09 17:43:55 +00:00
070668b66e meta(tasks): close [delegate-task-review-weight-inherit] in OpeItcLoc03/claude-skills 2026-06-09 16:55:14 +00:00
fedb6fc1cd fix(delegate-task): inherit review-task weight from impl (floor needs-claude) v0.2.3
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>
2026-06-09 19:53:05 +03:00
06f96036ea meta(tasks): claim [delegate-task-review-weight-inherit] in OpeItcLoc03/claude-skills by DESKTOP-NSEF0UK:claude-opus:11584 2026-06-09 16:53:04 +00:00
bb9a197d5c meta(tasks): claim [delegate-task-review-weight-inherit] in OpeItcLoc03/claude-skills by DESKTOP-NSEF0UK:claude-opus:18704 2026-06-09 16:42:51 +00:00
78be49e205 meta(tasks): close [using-tasks-status-read-perf-review] in OpeItcLoc03/claude-skills 2026-06-09 16:42:42 +00:00
13d2c09d99 review(using-tasks): VERDICT PASS 3/3 — close using-tasks-status-read-perf-review
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>
2026-06-09 19:42:20 +03:00
b7fcd389a1 meta(tasks): claim [using-tasks-status-read-perf-review] in OpeItcLoc03/claude-skills by DESKTOP-NSEF0UK:claude-opus:18704 2026-06-09 16:38:04 +00:00