Skip to content

v0.1.10

Choose a tag to compare

@github-actions github-actions released this 17 Jul 20:44
· 8 commits to master since this release
89d5e2e
  • templates: batch workflow — long-running batch orchestration over a file-backed task queue: rolling waves of background workers with one-by-one collection, cross_check gate; sync-vs-background decided per wave (a wave holding a single worker spawns sync — its report gates collect); per-worker git worktrees when logically-independent tasks collide only on infrastructure (registration files, build artifacts) with mechanical branch merge at collect

  • templates: testing — reassess re-entry state after fix_user_issue: a user-reported fix re-runs unit tests when it touched logic (Red-Green on the user's exact scenario) before integration → user re-testing; dedicated state instead of a jump into assess so no skip_all escape hatch can end the loop without the user's verdict

  • templates: explicit sync-spawn + bash fg/bg discipline in spawn states — gating agents spawn with run_in_background: false, bash runs foreground with an explicit timeout, background only for never-exiting processes

  • skills: task-delegation — sync-vs-bg spawn rule, background-agent premature-report gotcha, artifacts-outrank-report symmetric rule, worktree-commit-is-interim merge rule

  • skills: workflow-authoring — loop re-entry needs a dedicated state: audit a decision state's outbound transitions for early-exits before routing a retry into it (dual of the inbound gate-bypass audit)

  • skills: enrichments + bundled resyncs — hxq (HXQ_QUIET=1 stale-binary probe, clusters dir-scope warning, #if-blindness of unused-private/refs, --fix fixpoint discipline gated on the project typecheck), lang-haxe (Exception is a full catch-all since 4.1), claude-code-config (hook payload capture recipe, Stop-hook background_tasks shape), browser-verify/domain-gamedev/domain-yolo/debugging live-side syncs

  • skills: preferences JIT-placement rule (rules live in the process moment's carrier, not global CLAUDE.md); skill-manager machine-specifics gate; deployment notes generalized

  • engine: every exec state gets WF_PLUGIN_ROOT in its env (plugin root, resolved from the executor module's own location) — templates reference bundled scripts portably (sh "$WF_PLUGIN_ROOT/scripts/foo.sh"), no per-machine script installation; a state's own env: can override it

  • templates: master.yaml starts with a scan_project exec state — engine-run project language scan (bundled scripts/scan-project.sh) whose per-extension menu (+ tool probes, e.g. hx … (hxq OK)) renders in the route prompt via context.project_langs; skill selectors pick from the menu instead of re-scanning (empty menu → manual fallback)

  • templates: file-review.yaml gains engine-run mechanics — probe_hxq exec (tool availability → context.hxq_available, consumed by a read_context top-up instruction) and mechanical_pass exec (bundled scripts/hxq-lint-file.sh on the reviewed file → context.lint_report); build_checklist carries lint findings as facts, drops linter-covered rules from the manual checklist (stale-report guard via === file headers), keeping only judgment rules

  • templates: exec states pass agent/context-derived values via env: (not template interpolation into sh -c) — a $(cmd)-named directory or reviewed file cannot execute

  • skills: coding-skill-selector reworked to menu-driven selection — pick languages the task touches from the engine scan, tool-bound skills (hxq) load only when the menu marks the tool available (or a probe succeeds), top-up rule for mid-task language widening

  • skills: anti-drift for bundled snapshots — scripts/check-skill-sync.sh diffs templates/skills/* against the live ~/.claude/skills/* (same-named pairs; .skillsyncignore lists intentional divergence like the generic coding-skill-selector), wired as a local git pre-commit hook so a stale snapshot can't be committed; every silently-drifted bundled skill re-synced from live; skill-manager checklist now requires copying every live-skill edit onto the bundled twin

  • skills+templates: top-tier orchestrator unloading — a top-tier main session writes plans/briefs/judgment inline but delegates code >~30 changed lines to implementer agents (coupled set → ONE agent with the whole plan, never per-file fan-out; implementer tier = plan detail × mechanical net: sonnet for detailed-plan+linter/tests, opus otherwise); the plan itself is ALWAYS built inline (dialog condensate, planner=dispatcher); wired through task-delegation + coding/bug-fix/planning states (incl. fix_coupled delegation carve-out and single-file >30-line routing)

  • skills: architecture skill cleaned and split — project-specific example stories abstracted (no leaked nouns), 4 debugging meta-patterns → new debugging skill (loaded via debugging/bug-fix gates + selector trigger), 3 UI-component entries → new domain-ui skill; body 26.3KB → 15.4KB always-loaded; bug-fix logic branch gained its missing skill gate

  • engine: digest_on_repeat state flag — a flagged prompt state delivers its full text ONCE per server process, later deliveries send a 2-line digest (status() always returns the full text; template reload clears the delivered-set; same-session Revisit abbreviation takes precedence; start() no longer forces the full prompt so master route digests on repeat start() calls). Flagged: route, doc_sync, suggest_commit, reflection.evaluate, testing.assess — ~4-5k tokens saved per task after the first in a session

  • templates: lint-review workflow — the trivial-change path (router-gated ≤2 files/≤50 lines) drops the 10-state file-review: the linter IS the review (collect paths → engine-run lint → act on findings + one intent re-read); wired as review_single in coding/bug-fix/code-review; registered in GLOBAL_WORKFLOWS

  • skills: lang-haxe progressive-disclosure diet — body 49.8KB → 20.9KB by loudness criterion (silent-bug gotchas stay; loud compile traps → references/compile-traps.md, Strict null-safety cluster → references/null-safety.md, abstract-types cluster → references/abstracts.md; verbatim script-asserted lossless split, three imperative index blocks in the body)

  • skills: hxq skill progressive-disclosure diet — body 81.5KB → 27.5KB (mutation-op contracts+caveats → references/ops.md, full lint semantics → references/lint.md, query recipes+nudges → references/queries.md; verbatim line moves, heading/line-reconstruction verified); body keeps gate rules, addressing, op index with imperative read-triggers and the three silent hazards (--write print-only, Edit-gate CRUD rule, --at --kind co-starting grab) — ~13k tokens saved per .hx-touching agent

  • templates: cross_file states focus on seams BETWEEN batches + set-wide patterns (within-batch seams are each batch agent's job; set-wide checks apply even with one batch)

  • skills+templates: global Agent-model policy — task-delegation gains a mandatory model table (pick by cost-of-error × mechanical safety net; sonnet for lint-covered/routine/locate/runner spawns, opus for macro-heavy/engine-critical/no-linter/judgement, opus wins on overlap, never haiku, never silent session-model inheritance); every spawn site across coding/bug-fix/testing/explore/web-research/planning names its default explicitly

  • templates: review routing is size-based, not count-based — trivial (≤2 files AND ≤~50 lines to review; full scope measures the FILE, diff scope the diff) → inline self-review, everything else → batched agents even for a single batch (fresh eyes on the author's code + main-context offload); dispatchers must pass an explicit Agent model (sonnet for linter-covered/routine batches, opus for macro-heavy/no-linter; never haiku, never silent session-model inheritance)

  • templates: review dispatchers batch files logically instead of one-agent-per-file — source+test together, change-coupling (hxq importers/callees for .hx), directory grouping, cap 5 files/~500 diff lines, oversized solo — amortizing each agent's fixed skill-load cost (~35-45k tokens) and putting coupled files in front of ONE reviewer; file-review consumes one file or a batch (space-separated file_path, per-file report sections + cross-file section), hxq-lint-file.sh lints a whole batch in one call (glob-safe: set -f held through the unquoted list expansion); applied to all three dispatchers (code-review, coding, bug-fix)

  • templates: file-review checklist dedup vs the linter — build_checklist decides report usability ONCE (stale/failed-lint guards) and records context.lint_subtraction; check_style/check_loops guard their hardcoded lists on that flag, subtracting at rule-description granularity by hxq lint --list-rules (residues named: local-var annotations, beyond-threshold complexity judgments)