agentleFS
tanishq286tanishq286/tq-forge/skills/tq-forge-skill/SKILL.md

tq-forge-skill

Skill8 starsChanged 5 months agoMITView on GitHub

Force-skill mode — bypass /tq-forge's auto-classification and scaffold a skill directly. Same sandbox + scoring + log path. Use when asked for "/tq-forge-skill", "make a skill that...", "scaffold a skill", or when /tq-forge classified something as an agent but you wanted a skill.

The file

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 0 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Check the halt flag: If $TQ_FORGE_HOME/halt.flag exists, queue the intent and exit:

    line 31
  2. Very specific:

    Write it: Use the Write tool. Path: $SANDBOX_SKILLS/<slug>/SKILL.md.

    line 64
  3. Very specific:

    Don't write SKILL.md anywhere outside the sandbox.

    line 90
  4. Very specific:

    If allowed-tools lists a tool the host doesn't grant, the skill silently fails when invoked.

    line 92

≈ “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

/tq-forge-skill — force-skill scaffold

When to use

You know you want a skill (a one-shot procedure callable as /<name>), not an agent. Either /tq-forge classified the intent ambiguously, or you're skipping the classifier entirely.

Procedure

export TQ_FORGE_HOME="${TQ_FORGE_HOME:-$HOME/.tq-forge}"
S="${CLAUDE_PLUGIN_ROOT:-${TQ_FORGE_HOME:-$HOME/.tq-forge}/install}/scripts"
source "$S/common.sh" && tq_ensure_home
  1. Check the halt flag. If $TQ_FORGE_HOME/halt.flag exists, queue the intent and exit:
    test -f "$TQ_FORGE_HOME/halt.flag" && bash "$S/forge-checkpoint.sh" queue "<intent>" && exit 0
  2. Pick a slug. Lowercase, hyphenated, <=32 chars. Use an explicit slug if the user gave one; else derive it. Confirm if ambiguous.
  3. Check for collisions.
    for d in "$CLAUDE_SKILLS_DIR/<slug>" "$SANDBOX_SKILLS/<slug>"; do
      test -e "$d" && echo "EXISTS: $d"
    done
    On a collision, ask: fork (<slug>-v2), edit the existing one, or abort.
  4. Create the directory.
    mkdir -p "$SANDBOX_SKILLS/<slug>"
  5. Compose the SKILL.md using ${CLAUDE_PLUGIN_ROOT:-${TQ_FORGE_HOME:-$HOME/.tq-forge}/install}/templates/SKILL.md.tmpl as the shape: frontmatter (name, description with "Use when…", allowed-tools), ## When to use (2-3 sentences), ## Procedure (numbered, copy-pasteable commands), ## Pitfalls (real ones), ## Verification, ## Tags. Target 200-800 words. To start from a deterministic stub instead, run bash "$S/scaffold.sh" skill "<intent>" --model <fable|opus|sonnet|haiku> --effort <level> and replace every placeholder marker the stub contains. Set --model only when the skill needs a specific model; the scorer fails a stub that still has placeholders.
  6. Write it. Use the Write tool. Path: $SANDBOX_SKILLS/<slug>/SKILL.md.
  7. Score it.
    bash "$S/quality-score.sh" "$SANDBOX_SKILLS/<slug>"
    bash "$S/dry-test.sh" "$SANDBOX_SKILLS/<slug>"
  8. If quality score < 7, identify the weakest dimension from the per-dim output, rewrite just that section, write again, re-score. ONE refine attempt. If still <7:
    bash "$S/forge-checkpoint.sh" review "<slug>" "<weak-dim>" "<score>"
  9. Append to skill-log.json.
    python3 -c "import json,datetime,pathlib,os;p=pathlib.Path(os.environ['TQ_FORGE_HOME'])/'skill-log.json';d=json.loads(p.read_text() or '[]');d.append({'slug':'<slug>','kind':'skill','score':<S>,'at':datetime.datetime.now(datetime.timezone.utc).isoformat(),'intent':'<intent>','status':'sandbox'});p.write_text(json.dumps(d,indent=2))"
  10. Print summary. slug, score, sandbox path, exact promote command.

Pitfalls

  • The slug must be unique across BOTH sandbox AND production. Don't shadow a live skill — it breaks naming when promoted.
  • Don't write SKILL.md anywhere outside the sandbox. /tq-forge-promote is the only path that writes into $CLAUDE_SKILLS_DIR.
  • If allowed-tools lists a tool the host doesn't grant, the skill silently fails when invoked. Pick from tools you know are available.

Verification

  • $SANDBOX_SKILLS/<slug>/SKILL.md exists, >=200 words.
  • Quality score printed, >=7 (or flagged for review).
  • skill-log.json has a new entry with kind: skill, status: sandbox.

Tags

tq-forge force-skill sandbox

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.