do-it 0.11.0 — macOS CI fix, leaner handbook, skill consolidation, advisory flow nudges, Restraint + CLAUDE.md, redesigned visual companion#1
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
anti-patterns-linthook was failing only on macOS. Two BSD-incompatibilities fixed —git grep -lwF -einstead of a GNU\bregex, andpwd -Ppath canonicalization so the/var→/private/varsymlink no longer breaks self-exclusion. Verified green on the real macOS CI runner.do-it-planning, review protocol →do-it-review-loop, dispatch contract →do-it-subagent-orchestration, execution pipeline →do-it-router, maintenance →do-it-handbook).do-it-grill-log→do-it-grill(Grill Log Artifact),do-it-domain-language→do-it-context(Domain Glossary Mode),do-it-visual-planning→do-it-planning(Visual Aids). Deprecated via manifestdeprecatedTargetswith 0.10.0legacyHashes; a simulated 0.10.0 → 0.11.0 upgrade removes them and reportsdoctordrift: 0.comments-lintnow flagsphase N/wave N/BL-NNNstage markers.do-it-router;CLAUDE.mdgiven a managed role indo-it-context(source-of-truth hierarchy + on-demand lean scaffold).do-it-planningand 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 testgreen (build, validate-agent-bundle, check-skill-links, lint-hooks, 60+ hook tests, 19 install tests).doctorclean; fresh install clean on both codex and claude targets;npm packlists expected files.🤖 Generated with Claude Code