本文へ移動
cccskills
無料GitHub で公開

gaia-badge-provision

Procedure for controlled, human-gated outbound README badge provisioning PRs (Issue #1817). Preflights upstream repositories, ensures single-badge placement with deep links, and records campaign outcomes without automated retries or multi-badge noise.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md10.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

gaia-badge-provision

Standardized agent procedure for provisioning one canonical Gaia README badge to recognized upstream open-source repositories (Campaign #1817).

Core Principle: Outbound Gaia is opinionated and minimal. Inbound Gaia is expressive and customizable. Gaia offers the seal. Upstream decides whether to wear it.


Non-Negotiable Invariants

  1. One repo $\rightarrow$ one approved outreach attempt $\rightarrow$ one PR $\rightarrow$ one or more eligible Named Skill badges.
    • Enumerate the full eligible skill set from skillsByRepo[repo].
    • Resolve each skill against contributor metadata and deduplicate by Named Skill ID.
    • Verify rank, attribution, SVG asset, and skill deep link.
    • Distinguish separate Named Skills from alternate badge styles: seals are alternative presentations of recognition, not separate earned skills.
    • Never provision handle, rank-word, or total-skill-count badges outbound.
    • README presentation adapts to eligible skill count:
      • 1 skill: One Named Skill badge.
      • 2–4 skills: Compact row of distinct skill badges.
      • 5–8 skills: Small labeled badge section (### Gaia Skill Tree Recognition).
      • 9+ skills: Concise curated display and link to the full recognized collection (the outreach message notes displayed badges are a curated selection).
    • Store exact offered skill IDs and chosen badge presentation in the campaign manifest and ledger history.
  2. Explicit Human Gate:
    • Neither PILOT_CANDIDATE nor READY in the campaign manifest authorizes outbound dispatch.
    • Outbound dispatch is strictly human-gated: every target repository must be explicitly authorized by human maintainers (recorded via --status APPROVED or --approved-by) before any branch, fork, or PR is created.
  3. README-Only Diff:
    • Diff must touch README.md only (or designated documentation index).
    • Zero modifications to source files, dependencies, workflows, or config.
  4. Idempotence & Terminal States:
    • ADOPTED / ALREADY_ADOPTED: An existing Gaia badge is present and valid $\rightarrow$ record success, stop.
    • DECLINED: Maintainer closes or rejects PR $\rightarrow$ record declined, terminal stop. Never re-contact or argue.
    • OPTED_OUT: Maintainer or repository is in the opt-out list $\rightarrow$ skip unconditionally.
    • NO_RESPONSE: PR unmerged without reply $\rightarrow$ do not follow up, bump, or ping.
  5. No Recurring Crawler:
    • This procedure is a finite campaign protocol, never a background daemon.
  6. Serving Contract & No False Ownership Claims:
    • Badges are served via static Honesty Mode (https://gaiaskilltree.com/badges/_assets/<handle>/<filename>.svg?repo=<owner>/<repo>).
    • The ?repo= parameter is retained for CDN / GitHub Camo cache isolation only.
    • Static SVG badges do not authenticate repository ownership (OAuth hardening is deferred to #494). Never claim or imply to maintainers that static badges prove repository ownership.

Preflight Verification (Per Target Repository)

Before creating any branch or fork:

  1. Manifest Validation:
    • Read campaigns/badge-provisioning/manifest.json.
    • Confirm target repository has been approved by human maintainers (status == "APPROVED"). Neither PILOT_CANDIDATE nor READY alone authorizes dispatch.
    • Confirm canonical_skill, badge_url, and deep_link are populated.
  2. Upstream Health & Policy:
    • Inspect upstream README and check CONTRIBUTING.md, AGENTS.md, or README header immediately before any dispatch.
    • Check if the repository is archived or deleted.
    • If PRs for badges/docs are explicitly forbidden, record OPTED_OUT via CLI and stop.
  3. Existing Badge Detection (superseded by the reconciler, Issue #2069):
    • Do not hand-grep READMEs. Run the read-only reconciler and the mandatory pre-dispatch gate below.
    • If the receipt shows ADOPTED / ALREADY_ADOPTED, a lead reviews and records the outcome via CLI; stop.

Upstream Reconciliation (read-only, Issue #2069)

scripts/plan_badge_provisioning.py reconcile observes GitHub and compares it with the ledger. It never mutates manifest.json, upstream repositories, or GitHub state. It writes only receipt.json and receipt.md.

# One or more repositories, or the whole campaign (safe for Flash / Flash-Lite recon routines)
python3 scripts/plan_badge_provisioning.py reconcile --repo pbakaus/impeccable --repo trailhq/Graft
python3 scripts/plan_badge_provisioning.py reconcile --all --max-workers 4 \
  --out-dir campaigns/badge-provisioning/receipts/<UTC-timestamp>

Observed states (independent of the ledger lifecycle): PR_OPEN, ADOPTED, ALREADY_ADOPTED, PARTIAL_COVERAGE, CLOSED_UNMERGED, READY_TO_APPROVE, NEEDS_REVIEW, UNKNOWN. DECLINED / OPTED_OUT / NO_RESPONSE remain terminal outreach restrictions shown beside the state.

Reviewer rules:

  • UNKNOWN (rate limit, 403, truncated search, unresolved identity) means retry later. It is never ready.
  • A merged PR without the badge on the current default-branch README is NEEDS_REVIEW, not adoption.
  • A contributor-level badge (handle / rank / skills) never proves Named Skill coverage.
  • Only READY_TO_APPROVE may be put in front of a human for approval. Held repos (Graphify, #2067) are never recommended for approval.
  • Routines may run reconcile; only the lead reviews anomalies and authorizes any ledger mutation.

Mandatory Pre-Dispatch Gate (immediately before any upstream PR)

python3 scripts/plan_badge_provisioning.py predispatch --repo <owner>/<repo> --worker <id>

Exit 0 prints RESERVATION_TOKEN=...; exit 2 prints the refusal reasons. The gate takes a per-repo reservation, refreshes upstream PR and README evidence, then checks ledger history and human approval. It refuses duplicates, existing badges, terminal restrictions, holds, ambiguous state and incomplete evidence. Create the PR immediately afterwards and record it with the token (the token is required for PR_OPEN):

python3 scripts/plan_badge_provisioning.py record-outcome --repo <owner>/<repo> --status PR_OPEN \
  --pr-url <url> --reservation-token <token>
python3 scripts/plan_badge_provisioning.py release-reservation --repo <owner>/<repo> --token <token>  # if you abort

The token is bound to the ledger state it was issued under and is void if that changes (e.g. DECLINED, OPTED_OUT) or it expires. --force (on record-outcome / release-reservation) is an admin override for founder-authorized recovery only. Agents and routines must never use it. If a repo has more open PRs than --open-scan-limit, it reports UNKNOWN and is never dispatchable.

Residual risk: reservations are local files (campaigns/badge-provisioning/.reservations/), so they serialize workers on one checkout/machine only. GitHub offers no atomic compare-and-create for PRs, so a maintainer or another machine can still open a PR between the final check and creation. Run the single dispatcher per campaign, and re-run reconcile right after dispatch (duplicate open PRs surface as the duplicate_open_prs anomaly). Details: campaigns/badge-provisioning/README.md.


README Placement Guidelines

  • Style Concordance:
    • If the README has an existing badge row (e.g. Shields.io, Trendshift, CI badges), append the Gaia badge to that row.
    • If badges are arranged in a centered <p align="center"> or <div>, conform to HTML formatting if markdown would break layout.
    • If no badge row exists, place the badge immediately beneath the primary # <Title> heading and description.
  • Badge Markdown Syntax:
    [![Gaia Skill: <Skill Name>](https://gaiaskilltree.com/badges/_assets/<handle>/<filename>.svg?repo=<owner>/<repo>)](https://gaiaskilltree.com/named/#explorer/<handle>/<slug>)
    
  • Preview & Verify:
    • Test that the badge URL returns HTTP 200 with content-type: image/svg+xml.
    • Test that the deep link navigates to the specific skill in the explorer.

Pull Request Framing & Etiquette

  • Branch Name: gaia/badge-<skill-slug>
  • PR Title: docs: add Gaia Skill Tree recognition badge for <Skill Name>
  • PR Body Template:
    Hello! 👋
    
    [<Skill Name>](<deep_link>) is recognized in the [Gaia Skill Tree](https://gaiaskilltree.com/) registry.
    
    This PR adds a minimal, verifiable README badge linking directly to the skill's evidence certificate and capability profile:
    
    [<badge_preview>]
    
    - **One badge, README-only:** No dependencies, workflows, or other files modified.
    - **Optional:** You are completely welcome to merge, relocate, restyle, or close this PR.
    
    Thank you for building great tools!
    

Recording Outcomes in Manifest

After human review, PR submission, or terminal resolution, update the campaign manifest using scripts/plan_badge_provisioning.py record-outcome:

# 1. Record human approval before dispatch:
python3 scripts/plan_badge_provisioning.py record-outcome \
  --repo "<owner>/<repo>" \
  --status APPROVED \
  --approved-by "@mbtiongson1" \
  --notes "Human-approved for Phase 1 pilot dispatch"

# 2. Record PR submission (records PR URL, increments attempt counter, prevents duplicate dispatch):
python3 scripts/plan_badge_provisioning.py record-outcome \
  --repo "<owner>/<repo>" \
  --status PR_OPEN \
  --pr-url "https://github.com/<owner>/<repo>/pull/<number>"

# 3. Record outcome when resolved:
# If adopted/merged upstream:
python3 scripts/plan_badge_provisioning.py record-outcome \
  --repo "<owner>/<repo>" \
  --status ADOPTED \
  --notes "Merged by maintainer"

# If declined or closed without merge:
python3 scripts/plan_badge_provisioning.py record-outcome \
  --repo "<owner>/<repo>" \
  --status DECLINED \
  --notes "Maintainer declined badge PR"

# If repo policy prohibits badges or maintainer requests opt-out:
python3 scripts/plan_badge_provisioning.py record-outcome \
  --repo "<owner>/<repo>" \
  --status OPTED_OUT \
  --notes "Repository policy prohibits badge PRs"

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

ci-churn

無料

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.

日本語の概要は準備中です。原文の説明を表示しています。

gaia-research/gaia-skill-tree232026年10月13日 更新

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.

日本語の概要は準備中です。原文の説明を表示しています。

gaia-research/gaia-skill-tree232026年10月13日 更新

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".

日本語の概要は準備中です。原文の説明を表示しています。

gaia-research/gaia-skill-tree232026年10月13日 更新

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".

日本語の概要は準備中です。原文の説明を表示しています。

gaia-research/gaia-skill-tree232026年10月13日 更新

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.

日本語の概要は準備中です。原文の説明を表示しています。

gaia-research/gaia-skill-tree232026年10月13日 更新

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.

日本語の概要は準備中です。原文の説明を表示しています。

gaia-research/gaia-skill-tree232026年10月13日 更新

gaia-research のスキルをすべて見る

このスキルの問題を報告する