T-FC8W-task-work-graceful-no-justfile-fallback
Status: closed/superseded · Impact: medium · Complexity: medium
The /sdlc:task-work skill assumes every project has a justfile
exposing setup-worktree, full-check, and ci targets. When a project
doesn’t (e.g. a docs/plugin repo without project-level meta-CI), the
mandated commands fail noisily and the implementer is left guessing
whether the failures matter. The skill should detect missing tooling
and degrade gracefully instead of leaning on the operator to fudge it.
/Users/sksizer2/.claude/plugins/sdlc/skills/task-work/SKILL.md Step 4
contains the unconditional sequence:
mise trust && just setup-worktreewith the note “Do this once per worktree … before any other commit attempt.” Step 7 contains the unconditional sequence:
just full-checkjust ciThese break in projects that have no justfile (e.g. this repo —
/Users/sksizer2/Developer/dev — has no justfile at the root). The
fallback today is “the operator absorbs the error and decides whether
to proceed”, which is exactly the kind of human judgment the skill is
supposed to remove.
Proposed
Section titled “Proposed”/sdlc:task-work detects missing tooling up front and either skips
those steps cleanly or surfaces a single explicit decision to the user
(“no quality gate detected — proceed without one? [y/N]”) rather than
firing a command that will fail. Project-specific quality gates (e.g.
python3 plugin/skills/entities-audit/tests/run_evals.py) can be
declared in a per-project config the skill consults.
Approach
Section titled “Approach”- Add a project-level config the skill reads early (likely
docs/planning/.task-work.tomlor a section inCLAUDE.md) that declares:setup_command,quality_check_command,ci_command. All optional; absence means “no command for this phase”. - Replace the hardcoded
just …calls in Step 4 and Step 7 with “run the configured command if any, otherwise noteno <phase> command configuredand continue”. - Document the config in the skill’s reference docs and add a migration note to the project CLAUDE.md template.
Files to touch
Section titled “Files to touch”/Users/sksizer2/.claude/plugins/sdlc/skills/task-work/SKILL.md— replace hardcodedjustinvocations in Step 4 and Step 7 with config-driven commands./Users/sksizer2/.claude/plugins/sdlc/skills/task-work/— possibly a helper script that reads the config and prints the command for a given phase.- Per-project config file path (new, exact location TBD).
Acceptance criteria
Section titled “Acceptance criteria”- AC-1: Running
/sdlc:task-workin a project without ajustfileno longer errors at Step 4 or Step 7. - AC-2: A project with project-level CI continues to invoke its configured commands (via the new config) and behaves identically to today.
- AC-3: The skill emits a single clear log line for each skipped
phase (e.g.
Step 7: no quality_check_command configured — skipping).
Out of scope
Section titled “Out of scope”- Auto-detecting common build systems (pnpm, cargo, etc.) — explicit config first; auto-detection can come later.
- Migrating other skills that also hardcode
just ….
Dependencies
Section titled “Dependencies”- none
Discovery context
Section titled “Discovery context”Spawned by /sdlc:task-work post-mortem of
T-QIBD-audit-memoizes-parsed-frontmatter on 2026-05-19, which
ran in a repo with no justfile.