Skip to content
cccskills
FreePublished on GitHub

skill-template

Bootstrap a new standalone skill repo under gaia-research/ from the canonical template set at gaia-research/gaia-research/templates/skill-repo/. Handles the full flow: interactive prompts for all placeholders, fetches templates via the GitHub API, substitutes values, creates the new repo (gaia-research/skill-<name>), writes README.md / SKILL.md / install.sh / .gitignore / LICENSE / powered-by-gaia.svg, makes the initial commit and pushes. Also supports update mode: re-applies the template structure to a pre-existing skill repo and opens a draft PR with the drift. Use when the user says "new skill repo", "bootstrap a skill repo", "/skill-template", "create skill-foo", "spin up a gaia-research skill repo", "template a new skill", "align skill-fuse to the template", or "/skill-template update <repo>". Requires: gh CLI (authenticated with gaia-research org access), python3, git.

The English summary is being prepared. Showing the original description.

Works withGitHub
See how to install

Files included (1)

  • SKILL.md8.8 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

skill-template

Bootstrap a new gaia-research/skill-* repo — or realign an existing one — from the canonical template at gaia-research/gaia-research/templates/skill-repo/.

Modes

ModeInvocationWhat it does
create/skill-template <name> or /skill-templateNew repo gaia-research/skill-<name>, initial commit, pushed to main
update/skill-template update <repo>Clones existing repo, re-renders templates, opens draft PR with drift only

Requirements

  • gh CLI authenticated with a token that can create public repos under gaia-research/
  • git
  • python3 (used for placeholder substitution — handles multi-line values and backticks safely)

Create flow

Step 1 — collect inputs

Prompt the user for each value. Skip any that were passed on the command line.

PromptVariableExample
Skill name (kebab-case, no skill- prefix)SKILL_NAMEci-churn
Display name (Title Case)SKILL_DISPLAY_NAMECI Churn
Tagline (one sentence — the pain point)SKILL_TAGLINEMeasure CI waste on avoidable pushes.
Description (2–3 sentences)SKILL_DESCRIPTIONClassifies every commit…
Invoke triggerINVOKE_TRIGGER/ci-churn
RequirementsREQUIREMENTSgh CLI (authenticated), Python 3.8+
Files the installer fetches (space-separated)FILES_TO_FETCH_RAWci_churn.py SKILL.md
Main script filename (or blank if none)SCRIPT_NAMEci_churn.py
Example output (paste terminal capture)EXAMPLE_OUTPUT_RAWactual output

Derive automatically (do not prompt):

  • REPO_SLUG = skill-${SKILL_NAME}
  • INSTALL_PATH = .agents/skills/${SKILL_NAME}
  • YEAR = $(date +%Y)
  • ORG = gaia-research
  • FILES_TO_FETCH = each token from FILES_TO_FETCH_RAW wrapped in double-quotes, joined by a space (e.g. "ci_churn.py" "SKILL.md")
  • EXAMPLE_OUTPUT = EXAMPLE_OUTPUT_RAW wrapped in a triple-backtick block if not already fenced

Step 2 — echo plan and confirm

Print a summary and ask for confirmation before making any network calls:

About to create: gaia-research/skill-<name>
  Invoke trigger : /<name>
  Install path   : .agents/skills/<name>
  Installer gets : <files>
  Repo will be   : https://github.com/gaia-research/skill-<name>
Proceed? [y/N]

Abort on anything other than y/Y.

Step 3 — fetch templates

Use curl, not gh api (avoids path-rewriting issues on Windows). Do NOT clone gaia-research/gaia-research — the repo is large.

BASE="https://raw.githubusercontent.com/gaia-research/gaia-research/main/templates/skill-repo"
TMPDIR_TEMPLATES="$(mktemp -d)"
for f in README.template.md SKILL.template.md install.template.sh \
         .gitignore LICENSE.template powered-by-gaia.svg; do
  curl -fsSL "${BASE}/${f}" -o "${TMPDIR_TEMPLATES}/${f}"
done

If any fetch returns non-200, bail with:

ERROR: Could not fetch template file '<f>' from gaia-research/gaia-research.
The templates may not be published yet. Check:
https://github.com/gaia-research/gaia-research/tree/main/templates/skill-repo

Step 4 — substitute placeholders

Use Python (not sed) — multi-line values and backticks break sed.

import os, pathlib, shutil

subs = {
    "{{skill_name}}": os.environ["SKILL_NAME"],
    "{{skill_display_name}}": os.environ["SKILL_DISPLAY_NAME"],
    "{{skill_tagline}}": os.environ["SKILL_TAGLINE"],
    "{{skill_description}}": os.environ["SKILL_DESCRIPTION"],
    "{{repo_slug}}": os.environ["REPO_SLUG"],
    "{{invoke_trigger}}": os.environ["INVOKE_TRIGGER"],
    "{{install_path}}": os.environ["INSTALL_PATH"],
    "{{example_output}}": os.environ["EXAMPLE_OUTPUT"],
    "{{requirements}}": os.environ["REQUIREMENTS"],
    "{{year}}": os.environ["YEAR"],
    "{{org}}": os.environ["ORG"],
    "{{script_name}}": os.environ.get("SCRIPT_NAME", ""),
    "{{files_to_fetch}}": os.environ["FILES_TO_FETCH"],
}

src_dir = pathlib.Path(os.environ["TMPDIR_TEMPLATES"])
out_dir = pathlib.Path(os.environ["OUT_DIR"])
out_dir.mkdir(parents=True, exist_ok=True)

for src_name, dst_name in [
    ("README.template.md", "README.md"),
    ("SKILL.template.md",  "SKILL.md"),
    ("install.template.sh", "install.sh"),
    ("LICENSE.template",   "LICENSE"),
]:
    text = (src_dir / src_name).read_text(encoding="utf-8")
    for k, v in subs.items():
        text = text.replace(k, v)
    (out_dir / dst_name).write_text(text, encoding="utf-8")

# Static files — copy unchanged
for static in [".gitignore", "powered-by-gaia.svg"]:
    shutil.copy(src_dir / static, out_dir / static)

Step 5 — create the repo, commit, push

OUT_DIR="/tmp/${REPO_SLUG}"
cd "$OUT_DIR"
chmod +x install.sh
git init -b main
git add .
git commit -m "chore: bootstrap ${REPO_SLUG} from templates/skill-repo

Generated by /skill-template. Placeholders substituted by ci-churn-style Python substitution.
Template source: https://github.com/gaia-research/gaia-research/tree/main/templates/skill-repo"
gh repo create "gaia-research/${REPO_SLUG}" \
  --public \
  --source=. \
  --remote=origin \
  --push \
  --description "${SKILL_TAGLINE}"

Step 6 — print final report

✓  Created: https://github.com/gaia-research/<repo-slug>
✓  Files: README.md  SKILL.md  install.sh  LICENSE  .gitignore  powered-by-gaia.svg

   Install one-liner:
   bash <(curl -fsSL https://raw.githubusercontent.com/gaia-research/<repo-slug>/main/install.sh)

   Next steps:
   1. Add the skill payload (script/logic files) and push a second commit
   2. Test the one-liner in a scratch dir that has .agents/skills/ present
   3. Update the gaia-skill-tree skills source list in registry/skill-sources.md

Update flow

Invocation: /skill-template update <existing-repo>

  1. Shallow-clone: gh repo clone gaia-research/<repo> /tmp/<repo> -- --depth=1
  2. Auto-derive placeholder values from the existing README.md and SKILL.md (skill name from SKILL.md frontmatter name:, tagline from first > blockquote in README, invoke trigger from ## Install one-liner, etc.). Confirm each with the user.
  3. Fetch templates (Step 3) and substitute (Step 4) into /tmp/<repo>-rendered/.
  4. Create branch template/align-v1 in the cloned repo.
  5. Copy only the six template outputs over the working tree: README.md, SKILL.md, install.sh, .gitignore, LICENSE, powered-by-gaia.svg. Never touch the skill's logic files (Python scripts, reference docs, etc.).
  6. Show the diff; ask which files to apply (default: all).
  7. Commit accepted changes and open a draft PR:
    git add -A
    git commit -m "chore: align to templates/skill-repo v1"
    git push -u origin template/align-v1
    gh pr create --draft \
      --title "chore: align to templates/skill-repo v1" \
      --body "Automated realignment via /skill-template update."
    

Guardrails

  • Never push directly to main on an existing repo. Update mode always uses a branch + draft PR.
  • Never touch logic files during update mode. Only the six template outputs: README.md, SKILL.md, install.sh, .gitignore, LICENSE, powered-by-gaia.svg.
  • Never hard-code placeholder values. Non-TTY: bail with the list of missing variables.
  • If gh repo create fails because the repo exists, offer to switch to update mode.
  • Template static files (.gitignore, powered-by-gaia.svg) are copied as bytes; never run substitution on them.

Notes

  • Template source: gaia-research/gaia-research → templates/skill-repo/
  • Human bootstrap guide: same dir → TEMPLATE_README.md
  • Token-spend logging: log as a comment on the new repo's first issue or the PR that created it.
  • The version: field in this SKILL.md tracks the skill version. The template bundle version lives inside SKILL.template.md frontmatter and is independent.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Measure CI churn cost for a pull request: how many commits and how many CI-compute seconds were burned on avoidable "fix the CI" push rounds. Use when you want to understand the efficiency cost of a PR's iteration cycle, get actionable pre-push check suggestions, or include a churn summary in a pipeline report. Triggers: "ci churn", "how much CI did we burn", "avoidable commits", "ci efficiency", "wasted CI time", "churn report", "/ci-churn". Called automatically by /fp-drift at pipeline close.

The English summary is being prepared. Showing the original description.

gaia-research/gaia-skill-tree23Updated Oct 22, 2026

Produce the rendered evidence a human-gated frontend PR owes its reviewer: capture each changed surface (plus the before state for anything modified, plus mobile width), then generate one self-contained local HTML page the founder can open and review without checking anything out. Use when a PR is gated by the "Frontend changes are HUMAN-GATED" section of CLAUDE.md, or when the user says "/design-gate", "screenshot evidence for this PR", "prep this for founder review", "build the design evidence page", "what does this look like before and after". The page comes from a template script, not hand-written markup. Output is session-local and never committed. Do NOT use for non-gated changes: typo/grammar/factual fixes in an unchanged block, dead link targets, alt/ARIA fixes with no visual change, cache-bust bumps, or refactors with no rendered diff.

The English summary is being prepared. Showing the original description.

gaia-research/gaia-skill-tree23Updated Oct 22, 2026

One-fix-at-a-time, approval-gated design fix recovery. Given a checklist of fixes (handover doc, CHECKLIST.md, or inline list), applies each individually, presents a diff, and waits for an explicit APPROVE / REJECT / NO CHANGES decision before committing. Trigger phrases: /design-iteration, "go through the checklist one by one", "fix these one at a time", "bucket recovery", "design fix pass".

The English summary is being prepared. Showing the original description.

gaia-research/gaia-skill-tree23Updated Oct 22, 2026

Playbook for correcting a named skill's star level to match its computed Trust Magnitude grade, with an independent post-calibration verification pass and a CLI-logged timeline event (never hand-written). Use when: recalibrating a skill's level, fixing a stale or drifted star rating, running a batch of `gaia dev calibrate` corrections, or confirming a past calibration actually landed. Triggers: "calibrate <skill>", "recalibrate the trust magnitude backlog", "promote/demote <skill> to N stars", "why is <skill> still N stars", "verify a calibration actually landed", "Hall of Heroes ranking is wrong".

The English summary is being prepared. Showing the original description.

gaia-research/gaia-skill-tree23Updated Oct 22, 2026

Close out a completed EPIC / sprint end-to-end: author a fact-verified meta-post announcing what shipped, archive the EPIC's handovers, snapshot orchestrator memory, gate the integration→main merge on CI-green + explicit human go, drive the version bump (merge-commit conventions that auto-sync classifies), and verify the release reached the registry/PyPI. Use when the user says "close out EPIC <n>", "wrap up the sprint", "ship the meta shift", "/epic-close", or asks to finalize an integration branch that is ready to merge to main. Generalizes the EPIC 1002 (Yggdrasil II) close-out. This skill orchestrates — it authors founder docs directly (superadmin) and delegates code/regen to workers; it NEVER merges to main without the human gate.

The English summary is being prepared. Showing the original description.

gaia-research/gaia-skill-tree23Updated Oct 22, 2026

Run this skill for Phase 3 of the evidence verification pipeline — the adversarial audit step. Use when you need to check the evidence data lake for bad data before ingestion: dead links, wrong URL formats (tree/ vs blob/), subjective wording ("elite", "high-quality"), stale migration notes, benchmark catalog misuse/vendor-claim leakage, or skills whose star evidence conflicts with classified evidence level. Triggers on phrases like: "audit the data lake", "adversarial check", "ev-adversarial-audit", "check for noise in evidence", "flag bad evidence", "run the audit phase", "quality check the by-type files", or any reference to Phase 3 of the pipeline.

The English summary is being prepared. Showing the original description.

gaia-research/gaia-skill-tree23Updated Oct 22, 2026

See all skills by gaia-research

Report a problem with this skill