agentleFS
MoeenNehzatiMoeenNehzati/famulus/skills/initialize-tdd/SKILL.md

initialize-tdd

Skill4 starsChanged 4 months agoMITView on GitHub

Use when the user asks to initialize a brand-new TDD project. Do not use for adding TDD to an existing project.

  • Reads credentials

The file

We split this skill into the rules it gives an agent

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

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    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. Very specific:

    After selecting the assets, replace {{PROJECT_NAME}} in every copied text file with the name exactly as supplied and replace …

    line 53
  2. Distinctive:

    Never commit unless the user separately asks.

    line 70

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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
<!-- BEGIN BLUEPRINT INTERFACES -->

Generated from blueprint.yaml. Do not edit this block by hand.

Executable Interfaces:

Send the required caller (caller skill), interface, version, and arguments; optional dry_run defaults to false. Compact uses ordered positionals plus an option mapping; ordered raw argv uses positionals: [] plus every argv token in list options. Never mix forms.

  • initialize-tdd._rtx.interface.setup-compat-aliases — Create every host compatibility alias symlink (e.g. a legacy filename some host looks for specifically) in a freshly scaffolded project directory.
    • Caller: initialize-tdd
    • Version: 1
    • Security level: 2
    • Alternative: default Arguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {}, "positionals": ["project-dir"], "stdin": null} Required options: []; positional arity: 1..1; stdin: forbidden
<!-- END BLUEPRINT INTERFACES -->

Initialize TDD Project

Require the human-readable project name and implementation language before creating anything. Derive the directory slug by lowercasing the name, replacing spaces and underscores with hyphens, and removing characters outside [a-z0-9-]. Create the slug directory in the caller's current working directory. Reuse it only when it is empty; ask before proceeding when it is nonempty, and never overwrite existing work.

Select and render the scaffold

Copy all assets/common/ content first. Preserve the assets' staged design-and-stubs, tests, implementation, and documentation workflow and its approval gates; render placeholders, but do not rewrite that workflow.

For Python, overlay all assets/python/ content, append its .gitignore to the common one rather than replacing it, and make the copied bootstrap asset executable. Keep the import package named project; only the distribution name and document titles vary by project. Do not create .env or .testenv: the generated modules use LOG_LEVEL=INFO and LOG_DIR=logs defaults when those files are absent.

For any other language, keep the generic scaffold, add obvious build and dependency exclusions, and adapt the generated project-conventions section only where the requested language has clear idioms. Tell the user that this is a best-effort generic scaffold: it does not include the Python environment, logger, configuration modules, or starter tests.

After selecting the assets, replace {{PROJECT_NAME}} in every copied text file with the name exactly as supplied and replace {{PACKAGE_DIST_NAME}} with the slug wherever it appears.

Finalize and verify

  1. Invoke initialize-tdd._rtx.interface.setup-compat-aliases with the scaffolded project directory and require successful alias state before continuing.
  2. Initialize Git inside the project directory without creating a commit.
  3. For Python, run the copied bootstrap asset to create the virtual environment and install the declared dependencies. If its interpreter assumption does not fit the environment, adjust that copied asset rather than regenerating it. Run the full generated starter test suite from the virtual environment and require it to pass.
  4. Fix any scaffold, bootstrap, or test failure before reporting success. If it cannot be fixed, report the exact failure and remaining partial state; inspect that state before retrying. Report the created files and fresh test result. Never commit unless the user separately asks.

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.