Skip to content

do-it 0.11.0 — macOS CI fix, leaner handbook, skill consolidation, advisory flow nudges, Restraint + CLAUDE.md, redesigned visual companion#1

Merged
tdwhere123 merged 10 commits into
mainfrom
chore/do-it-0.11-ci-and-simplify
Jun 5, 2026
Merged

do-it 0.11.0 — macOS CI fix, leaner handbook, skill consolidation, advisory flow nudges, Restraint + CLAUDE.md, redesigned visual companion#1
tdwhere123 merged 10 commits into
mainfrom
chore/do-it-0.11-ci-and-simplify

Conversation

@tdwhere123

Copy link
Copy Markdown
Owner

Summary

A focused upgrade addressing four reported problems plus two follow-on threads, then driven through a multi-lens review→fix loop until clean.

Net: +? / −? across the branch — large reduction (removed ~5k lines of duplicated docs + retired/relocated assets, added back a redesigned companion).

What changed

  • CI (the actual failure): anti-patterns-lint hook was failing only on macOS. Two BSD-incompatibilities fixed — git grep -lwF -e instead of a GNU \b regex, and pwd -P path canonicalization so the /var/private/var symlink no longer breaks self-exclusion. Verified green on the real macOS CI runner.
  • Handbook slimmed 12 → 7 templates. The 5 process docs that duplicated skills were removed; their content relocated into the owning skills (task-card layout → do-it-planning, review protocol → do-it-review-loop, dispatch contract → do-it-subagent-orchestration, execution pipeline → do-it-router, maintenance → do-it-handbook).
  • Skill consolidation 23 → 20. do-it-grill-logdo-it-grill (Grill Log Artifact), do-it-domain-languagedo-it-context (Domain Glossary Mode), do-it-visual-planningdo-it-planning (Visual Aids). Deprecated via manifest deprecatedTargets with 0.10.0 legacyHashes; a simulated 0.10.0 → 0.11.0 upgrade removes them and reports doctor drift: 0.
  • Advisory flow nudges (one-shot, never block): after grill on durable-plan work with no plan card → reminder to land the plan card; on established projects / port-restore prompts → reminder to read existing structure / grep current code first.
  • Comment discipline: comments-lint now flags phase N / wave N / BL-NNN stage markers.
  • Restraint principle added to do-it-router; CLAUDE.md given a managed role in do-it-context (source-of-truth hierarchy + on-demand lean scaffold).
  • Visual companion kept + redesigned. The browser render templates moved under do-it-planning and got an editorial "dossier" redesign (dual light/dark themes), rendered and verified in both schemes; the full helper.js/server.cjs class contract is preserved.

Verification

  • npm test green (build, validate-agent-bundle, check-skill-links, lint-hooks, 60+ hook tests, 19 install tests).
  • macOS CI run success (the reported failure is fixed on real hardware).
  • Multi-lens review→fix loop (correctness, comment-discipline, install/release, spec/scope) → all findings resolved, two confirmation reviewers report RESOLVED.
  • Simulated 0.10.0 → 0.11.0 upgrade: deprecated skills removed, hooks updated, doctor clean; fresh install clean on both codex and claude targets; npm pack lists expected files.

🤖 Generated with Claude Code

tdwhere123 and others added 10 commits June 5, 2026 17:23
macOS CI failed in anti-patterns-lint.test.sh (Cases 4/5/6) on two
BSD-incompatibilities, both in hooks/anti-patterns-lint.sh:

- no-consumer used git grep -lE with a \b word boundary. \b is a GNU regex
  extension that BSD regcomp (macOS) rejects, so cross-file references were
  never found and referenced symbols were wrongly flagged as orphans. Switched
  to git grep's own portable -lwF -e (word match + fixed string).
- copy-paste / no-consumer self-exclusion stripped $REPO_ROOT/ from an
  uncanonicalized FILE_PATH. On macOS the worktree sits under /var ->
  /private/var, so git rev-parse --show-toplevel returns a canonical root the
  raw path does not match: REL_FILE stayed absolute, REL_DIR collapsed to ".",
  and a file matched itself. Canonicalize FILE_DIR with pwd -P (POSIX; BSD
  lacks readlink -f) before deriving repo-relative paths.

Reproduced on Linux via a symlinked TMPDIR (TMPDIR=/tmp/link -> /tmp/real);
all 14 cases pass normally and under the symlink. Audited comments-lint.sh and
code-map-refresh.sh: neither has the self-exclusion nor the git-grep-\b
pattern, so no change needed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…h files

The handbook scaffolded 12 templates (~869 lines); 5 duplicated content the
owning skills already define, and do-it never dogfooded them, so the
per-project "customization point" intent (commit 98a380b) never materialized —
it was pure duplicate-doc maintenance drift.

Removed (owning skill is now the single source of truth):
- task-card-template.md       -> do-it-planning owns the task-card layout
- workflow/review-protocol.md -> do-it-review-loop
- workflow/subagent-dispatch  -> do-it-subagent-orchestration
- workflow/agent-workflow.md  -> distilled into do-it-router (Execution Pipeline)
- maintenance.md              -> folded into do-it-handbook SKILL (Maintenance)

Kept (project-specific truth a generic skill cannot carry): README, invariants,
architecture, code-map, glossary, backlog, runtime-status.

Updated every reference: handbook SKILL file-layout / relationship table /
output / related-skills, the /do-it-handbook command description, kept-template
cross-links (README, glossary, code-map, invariants), do-it-planning task-card
layout, do-it-visual-planning card reference. Regenerated plugins/do-it bundle
and index.json.

npm test green; check-skill-links: 22 skills, 3 commands, all cross-references
resolve.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…lls)

grill-log was an artifact-format skill, not a routable capability — it only
defined the .do-it/grill/<task>.md shape that grill itself writes. Folded the
format into do-it-grill as a concise § Grill Log Artifact section (path/slug
rule, frontmatter + items format, status rules, append-only discipline) and
deprecated the standalone skill.

- manifest: removed from skills[]; added to deprecatedTargets with the 0.10.0
  legacyHash so existing installs remove it on upgrade.
- build scripts (build-skills-index HANDBOOK, build-index-json category map):
  dropped the entry; regenerated _index.md + index.json + plugins/do-it.
- references rewired: do-it-grill inline refs -> § Grill Log Artifact,
  do-it-brainstorm slug rule + related skills, docs/routing-matrix.

Verified: simulated 0.10.0 -> current upgrade removes the installed grill-log
skill and doctor reports clean; check-skill-links resolves; validate-agent-bundle
passes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…into planning (22 -> 20)

Two more low-utilization skills merged into their natural homes:

- do-it-domain-language -> do-it-context (new § Domain Glossary Mode). Both are
  managed vocabulary; context now carries the Light sediment path plus the
  deeper canonical-glossary + contradiction pass.
- do-it-visual-planning -> do-it-planning (new § Visual Aids). It was optional/
  auxiliary ("must not promote tier") and rarely routed. The lightweight
  .do-it/visual sketch guidance folds into planning; the browser-companion
  server (scripts/, templates/, references/) is retired.

Both deprecated via manifest deprecatedTargets with their 0.10.0 legacyHashes;
build scripts, router route-map, planning/context/brainstorm refs, and docs
(routing-matrix, upstream-map, maintenance) updated. The domain-language-reviewer
AGENT is untouched (separate review lens, not the skill).

Verified: 0.10.0 -> current upgrade removes the deprecated skills, doctor reports
clean (drift: 0); npm test green; check-skill-links resolves; 20 skills.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ode discipline

Two low-noise, one-shot advisories (never block) for real workflow gaps the user
hit: plan cards not reliably created after discussion, and agents "going rogue"
on established codebases.

- Plan-card reliability: after grill has run on durable-plan work (Heavy or an
  explicit plan-first request) and no .do-it/plans/<slug>.md exists, grill-prompt
  emits a one-shot reminder to land the plan card before implementation drifts
  ahead. Router records a sticky durable_plan_seen so the nudge survives the
  per-turn durable_plan_required recompute.
- Existing-code discipline: router writes dim_brownfield (project has
  .do-it/CONTEXT.md or a handbook) and port_intent (prompt asks to port / restore
  / reintroduce). grill-prompt emits a one-shot "read existing structure / grep
  current code first" nudge so the agent stops assuming greenfield.

Both follow the existing router(state-only) -> grill-prompt(emit) split and
attach to whichever exit path the grill hook takes, so they fire even when the
grill reminder itself does not. Brownfield is intentionally narrow (do-it context
artifacts, not any git repo) to stay coherent and quiet.

Adds 6 regression cases to scripts/test-hooks.sh. npm test green; lint-hooks clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… catch them

Removed the "Phase N" / "Cn" task-card labels I had left in the advisory-nudge
hook and its tests — exactly the stage-history comments do-it-comments-discipline
forbids, since they rot a release or two later. Then closed the gap that let them
through: comments-lint's task-ref family now also flags `phase N`, `wave N`, and
`BL-NNN` stage markers, not just external tracker refs (issue/pr/ticket/jira).
Adds a regression case.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Encodes the standing "又快又好 / 少做慎做" design principle into do-it so the agent
self-applies it instead of it living only in external memory:

- do-it-router gains a § Restraint: prefer advisory over blocking, thin/reuse
  before adding, never build things that grow unbounded, check git intent before
  deleting, let capabilities auto-fire instead of requiring a /command, match
  process to risk.
- do-it-context now gives CLAUDE.md a formal place: named in the source-of-truth
  hierarchy (authoritative for how-to-work; current code still wins on what the
  code is), with a § CLAUDE.md that draws the CLAUDE.md / CONTEXT.md / handbook
  boundary, makes CLAUDE.md the top of the convention-promotion ladder, and
  offers an on-demand lean skeleton (additive, never auto-write) that carries the
  Restraint principle into adopting projects.

Regenerated plugin bundle; check-skill-links + validate pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bumps version across package.json, manifest.json, both plugin.json files, and
the marketplace manifest; adds the 0.10.x migration entry; writes the 0.11.0
CHANGELOG covering the macOS CI fix, the handbook slim-down, the three skill
consolidations, the Restraint principle, CLAUDE.md's managed role, and the
plan-card / existing-code advisory nudges. Regenerated index.json + plugin
bundle.

Verified: simulated 0.10.0 -> 0.11.0 upgrade migrates state, removes the three
deprecated skills, updates the changed hooks, and reports doctor drift: 0; fresh
install clean on both codex and claude targets; npm test green; npm pack lists
the expected files.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… test gaps

Review-loop batch fixes (no Blocking found; these are the Important/Opportunity
findings):

- Stale skill inventory swept across human docs after the skill merges: README.md
  and README.zh-CN.md (the latter ships in the npm tarball) now say 20 skills and
  drop every do-it-visual-planning reference and the dead --with-optional example;
  docs/upstream-map.md external-idea rows repoint do-it-domain-language ->
  do-it-context; docs/maintenance.md drops the visual-planning example.
- anti-patterns-lint: added a no-consumer regression case proving the git grep
  `-w` word match rejects a substring-only neighbour (Widget vs WidgetFactory) —
  the exact invariant the BSD fix relies on; and canonicalized PROJECT_ROOT with
  pwd -P so the advisory's display path stays repo-relative on symlinked CWDs.
- router port_intent tightened: dropped the bare 恢复 / restore the / bring back
  forms that over-fired on runtime phrases ("恢复正常", "restore the DB"); kept the
  precise port / reintroduce / restore-legacy forms.

npm test green (anti-patterns 16, comments 17, hooks ok, install 19); lint-hooks
clean; no build drift.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ning

The visual-planning merge kept the SKILL folded into do-it-planning but had
retired the browser companion. Per the owner, the render capability stays (only
relocated) and the plain templates get a visual upgrade:

- Relocated the visual companion (static server + helper + plan-card /
  review-report render templates) from the removed do-it-visual-planning skill
  to skills/do-it/do-it-planning/{scripts,templates,references}. The server uses
  __dirname + a /tmp session dir, so the move needs no path changes.
- Redesigned frame-template.html: an editorial "dossier" aesthetic (Newsreader +
  IBM Plex Mono + Inter Tight, aged-ivory light / slate-navy dark themes, dot
  grid, ruled section margins, refined option/card/finding/table states). The
  full class/id contract consumed by helper.js + server.cjs is preserved, and it
  was rendered and verified in both color schemes.
- do-it-planning § Visual Aids now fully preserves the capability (compare
  options + recommendation, feed into interface-drill / architecture-scan,
  multi-agent sequencing) and points at the optional companion.
- manifest deprecation reason + CHANGELOG updated (companion relocated, not
  retired).

npm test green; check-skill-links + validate pass; plugin bundle regenerated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@tdwhere123 tdwhere123 merged commit cb39c96 into main Jun 5, 2026
8 checks passed
@tdwhere123 tdwhere123 deleted the chore/do-it-0.11-ci-and-simplify branch June 5, 2026 11:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant