Skip to content

T-TB73-the-app-local-justfiles-and-makefiles-go

State: closed/done · Impact: medium · Complexity: small

Seven app-local justfile/Makefile files hold 898 lines that reimplement moon’s task vocabulary by hand, with zero references to moon. apps/pumice declares dev, build, frontend-lint, frontend-typecheck and frontend-format-check three times over — once in .moon/tasks/tauri.yml, once in its justfile, once in its Makefile. Deleting the seven files leaves moon as the only task runner for these projects and the root justfile as the only parameterized human/skill entry point, per M-3MGB’s Layer C decision.

LocationRole today
apps/pumice/justfile213 lines; re-implements dev, build, frontend-lint, frontend-typecheck, frontend-format-check and more, already declared in .moon/tasks/tauri.yml and apps/pumice/moon.yml
apps/pumice/Makefile208 lines; the same targets a third time, over the justfile’s second
apps/ontological-legacy/Makefile127 lines of hand-written targets with no moon reference
solutions/ontological/desktop/justfile180 lines re-implementing dev, build, lint, format, format-check, typecheck, test, ci already declared in solutions/ontological/desktop/moon.yml (project id sdf)
apps/agentpants/Makefile107 lines of hand-written targets with no moon reference
apps/ontological-legacy/crates/mcp-proxy/justfile57 lines: build, run, test, full-check, full-write, semver-check, release-dry-run level="patch", release level="patch" for a Rust crate with no moon.yml of its own
apps/ontological-legacy/justfile6 lines, a thin wrapper
apps/pumice/README.mddocuments the Makefile/justfile pair as the two ways to run pumice commands, and cites just codegen-drift, just ports, make dev
solutions/ontological/desktop/README.mdtells contributors to run just dev, just ci, just ports, just frontend-dev

All seven files are gone. git ls-files no longer lists any of them. moon is the only task runner for pumice, sdf, agentpants and ontological-legacy; the root justfile — which delegates to moon 16 times and is Layer C, not duplication — is unchanged. The two READMEs point at moon run <project>:<task> instead of make/just, and at scripts/dev-port.sh --all for the port block (each project already ships that script; no justfile/Makefile ever did more than call it). mcp-proxy’s release/release-dry-run recipes, the one app-local recipe with a named default (level="patch"), move into a small shell script since the crate has no moon.yml to carry them.

  1. Move mcp-proxy’s release logic into apps/ontological-legacy/crates/mcp-proxy/scripts/release.sh, taking the level as $1 and defaulting to patch (level="${1:-patch}"), with a --dry-run flag selecting cargo release "$level" --no-confirm over --execute. This is the only named-default recipe among the seven files; everything else translates to a moon target directly.
  2. Delete the seven files: apps/pumice/justfile, apps/pumice/Makefile, apps/ontological-legacy/Makefile, solutions/ontological/desktop/justfile, apps/agentpants/Makefile, apps/ontological-legacy/crates/mcp-proxy/justfile, apps/ontological-legacy/justfile.
  3. Update apps/pumice/README.md: drop the “Makefile / justfile” section and its target table, and replace make dev / just codegen-drift / just ports with moon run pumice:dev / moon run pumice:codegen-drift / scripts/dev-port.sh --all.
  4. Update solutions/ontological/desktop/README.md: replace just dev, just ci, just ports, just frontend-dev with moon run sdf:dev (root justfile’s own dev recipe already delegates here), moon run sdf:web for the browser-only case, and scripts/dev-port.sh --all for ports; point at solutions/ontological/desktop/moon.yml for the full task list rather than restating one.
  5. Run moon task <target> (a sample from each surviving project — see AC-2) to confirm every target the deleted files used to front still resolves through moon alone; moon task prints the resolved command without executing it.
LocationKindChange
apps/pumice/justfiledeleteremove the app-local duplicate of .moon/tasks/tauri.yml
apps/pumice/Makefiledeleteremove the third copy of the same targets
apps/ontological-legacy/Makefiledeleteremove the app-local duplicate of moon’s task graph
solutions/ontological/desktop/justfiledeleteremove the app-local duplicate of solutions/ontological/desktop/moon.yml
apps/agentpants/Makefiledeleteremove the app-local duplicate of moon’s task graph
apps/ontological-legacy/crates/mcp-proxy/justfiledeleteremove the crate-local runner
apps/ontological-legacy/justfiledeleteremove the thin wrapper
apps/ontological-legacy/crates/mcp-proxy/scripts/release.shnewcarries the release/release-dry-run logic, including the level="patch" default, that the deleted justfile can no longer hold
apps/pumice/README.mdmodifyreplace Makefile/justfile instructions with moon run pumice:<task> and scripts/dev-port.sh --all
solutions/ontological/desktop/README.mdmodifyreplace just dev/just ci/just ports/just frontend-dev with moon run sdf:<task> and scripts/dev-port.sh --all
  • AC-1: git ls-files '**/justfile' '**/Makefile' lists only the root justfile — all seven app-local runner files are gone from the tree.
  • AC-2: Every target the deleted files used to front still resolves through moon alone. Loop moon task <t> over pumice:{dev,build,lint, frontend-typecheck}, sdf:{dev,build,lint}, agentpants:build and ontological-legacy:build; none reports an unknown target.
  • AC-3: No README still instructs a reader to run a deleted recipe — grepping apps/pumice/README.md and solutions/ontological/desktop/README.md for make and just invocations of the removed targets returns nothing.
  • AC-4: apps/ontological-legacy/crates/mcp-proxy/scripts/release.sh exists, is executable, and running it with no arguments invokes cargo release patch (the preserved default).
  • AC-5: git diff --stat -- justfile (root) is empty — the root justfile, which already delegates to moon and stays as Layer C, is untouched by this task.
  • Reconciling T-V6JD-repoint-template-sync-and-scripts’s existing reference to apps/pumice/justfile; that task is still planning/draft and will need its own row updated when it is picked up.
  • Layer B changes to any project’s moon.yml (tasks 6–8 in M-3MGB). This task deletes runners; it does not add or reshape moon tasks.
  • The root justfile itself. It stays — it is Layer C, not duplication.
  • Soft ordering only: apps/pumice/moon.yml and solutions/ontological/desktop/moon.yml already carry the dev/build/ lint/fmt-check/typecheck targets this task points the READMEs at, so no other task in M-3MGB must land first. If Layer B tasks (6–8) land later and rename or add targets, only the README prose needs a follow-up edit, not this task’s deletions.
  • none beyond that

T-0DSA-the-typescript-aspect-delegates-and-spans-both-stacks


← Back to Tasks