agentleFS
ianshankianshank/Agents/skills/project-setup/SKILL.md

project-setup

Skill1 starsChanged 58 days agoApache-2.0View on GitHub

Generate a deterministic, self-documenting Makefile for a Python project by detecting its toolchain (ruff, mypy/pyright, pytest, coverage) and package manager. Use this whenever the user wants a Makefile, a `make` build/test/lint interface, one-command project tasks, to scaffold or standardize a repo's developer commands, or to stop re-deriving how to run a project's checks each time. Emits build/test/lint/typecheck/coverage/check targets and delegates to a quality-gate or deploy script when present.

48 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use creative-writing-craft, creative-writing-muse and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • Abdullokh-NSkill

    creative-writing-craft

    Справочник ремесла: проза, сцена, стиль, голос. Загружать, когда нужно знание "как писать", а не режим производства.

    Also in 3 projects that use this

  • Abdullokh-NSkill

    creative-writing-muse

    Точка входа в набор скилов для длинной прозы. Включается, когда автор просит спланировать, написать, продолжить, переписать или разобрать художественный текст — роман, повесть, цикл рассказов. Ведёт маршрут от замысла к готовому куску и держит базу знаний проекта.

    Also in 3 projects that use this

  • badgidsSkill

    character-sim

    Pressure-test a character by speaking or reasoning strictly from that character's current voice, goals, relationships, emotional pressure, and knowledge boundary without creating canon by accident.

    Also in 3 projects that use this

  • jpsweeney97Skill

    writing-principles

    Enforces writing principles for instruction documents (SKILL.md, skill supporting files, subagents, CLAUDE.md). Use when writing, reviewing, or editing any file in **/skills/**/*.md, **/agents/*.md, or **/CLAUDE.md. Triggers on skill creation, skill file updates, CLAUDE.md changes, subagent authoring, or instruction document review.

    Also in 3 projects that use this

  • ItsSidharthaSkill

    story-planning

    Collaborative planning skill for a GitHub issue. Takes issue content and codebase context as input. Runs an iterative clarification loop until the user explicitly agrees to a plan, then saves it to docs/<story_number>/plan.md. Used by the user-story-implementation skill — load this skill at the start of Phase 1 and follow it completely before returning to the orchestrator.

    Also in 3 projects that use this

  • badgidsSkill

    story-review

    Diagnose existing prose at a chosen editorial level, from whole-story and developmental problems through scene, line, copy, and proof passes, without rewriting until the diagnosis is accepted.

    Also in 3 projects that use this

  • +4 more from Abdullokh-N

The file

We split this skill into the rules it gives an agent

2 rules. 0 are common, 1 is distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 40 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Run the deterministic generator.

    line 27
  2. Very specific:

    Compose, don't duplicate: when scripts/quality-gate.sh exists the lint/typecheck/test/ coverage/check targets delegate to it (one source of …

    line 39

“Common” is measured: kept by at least 6 in 10 of the 40 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

project-setup — Makefile writer

Turn a Python project's implicit toolchain into an explicit, committed Makefile so routine tasks run as one deterministic command (make test, make check) instead of being re-inferred each session. Detection is a pure function of the project's files; the emitted Makefile is byte-stable and safe to extend by hand. The generator runs the model only once, at generation time; the Makefile it writes needs zero inference to run thereafter.

1. Preconditions (input contract)

  • A target project directory exists (default: the current directory).
  • Optionally a pyproject.toml and/or marker files (requirements.txt, poetry.lock, pdm.lock, uv.lock, pyrightconfig.json, a tests/ directory). Detection degrades gracefully: absent config just yields fewer targets — nothing is fabricated.
  • Python 3.10+ (tomli is needed only on 3.10; 3.11+ uses stdlib tomllib).

2. Procedure (the E2E steps)

Run the deterministic generator; do not hand-write the Makefile.

python scripts/gen_makefile.py --root <project> [--workspace] [--out <path>] [--stdout] [--check]
  1. Inspect the project: package manager, ruff/mypy/pyright/pytest/coverage config, src/ vs flat layout, the coverage source and fail_under threshold, and whether sibling scripts/quality-gate.sh / scripts/deploy.sh already exist.
  2. Emit a Makefile with .DEFAULT_GOAL := help, .DELETE_ON_ERROR, .PHONY on every phony target, ?= overridable variables, a self-documenting help target, and install/format/lint/typecheck/test/coverage/check/build/clean (plus deploy) as detected.
  3. Compose, don't duplicate: when scripts/quality-gate.sh exists the lint/typecheck/test/ coverage/check targets delegate to it (one source of truth); otherwise they emit the tool commands inline so the Makefile stands alone.
  4. Monorepo (--workspace, optional): members are the immediate-child directories with their own pyproject.toml (a pure, sorted filesystem observation — nested fixture trees never match; symlinks excluded). The root Makefile gains explicit check-<member> targets ($(MAKE) -C <member> check, so each member's tool configs resolve in its own cwd — and only for members whose own Makefile has a check target), aggregate check-all / install-all / clean-all, and every member gets its own single-package Makefile. install-all and clean-all also delegate per member ($(MAKE) -C <member> install|clean) so each member's DETECTED install command — dev extras, poetry, and so on — is honoured. --check then iterates ALL artifacts. Environment variables (e.g. HYPOTHESIS_PROFILE) propagate through $(MAKE) -C untouched.
  5. Review the generated files with the user and commit them. They are scaffolds — extend freely.

3. Output contract (postconditions — what "done" means)

  • A Makefile is written at --out (default <root>/Makefile), ending in exactly one newline, with LF line endings and hard-TAB-indented recipes (Make rejects spaces).
  • Re-running on an unchanged project produces a byte-identical file (no timestamps).
  • make help lists the available targets; make check runs the aggregate quality gate.
  • Targets POSIX/GNU make (Linux, macOS, WSL).

4. Failure handling

  • A missing or malformed pyproject.toml is not an error: detection returns safe defaults and the Makefile still emits help, install, and clean.
  • --check is advisory (see §5), never a hard gate — the Makefile is meant to be edited.

5. --check is advisory, not a gate

--check exits 1 when the committed Makefile differs from a fresh render — useful as an optional drift signal for teams who choose to keep the file fully generated. Because the Makefile is a scaffold users extend, do not wire --check into CI as a blocking gate by default.

6. Validation gate (before declaring success)

You are not done until this exits 0:

python scripts/validate_skill.py --skill . --tier structural,behavioral

7. Examples

Example 1 — src-layout pip project Input: a project with [tool.ruff], [tool.mypy], [tool.pytest.ini_options], [tool.coverage], and src/. Output: a Makefile whose typecheck runs mypy src, whose coverage enforces the detected --cov-fail-under, and whose check chains lint typecheck test.

Example 2 — delegation Input: a project that already has scripts/quality-gate.sh. Output: a Makefile whose check target is ./scripts/quality-gate.sh all (no duplicated commands).

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.