Skip to content

8trafficai/skills-sh-growth-loop

v0.2.0MIT

Measure skills.sh discoverability, track verified organic users, and run ethical community growth experiments.

skills-sh-growth-loop

Measure whether Agent Skills are discoverable on skills.sh, track install and search-rank changes, keep verified organic-user evidence separate, and turn community feedback into the next small product experiment.

Registry repair and next eligible user-test experiment

Dated 2026-08-07 snapshot. Regenerate report before reusing any metric card. This hero is a dated fleet-status artifact, not the expected one-target monitor output and not proof of an install, organic user, or attributed download.

Install the skill from its public GitHub source:

npx skills add L4A-ai/skills-sh-growth-loop --agent claude-code --skill skills-sh-growth-loop --yes

Independent two-minute evaluation

If you are not a maintainer or internal tester, try the skill on one public skill you genuinely want to evaluate. Replace only owner/repo@skill-slug below with the exact source and slug of a public skill you genuinely wanted to inspect, then run the bundled helper from the installed path created by the command above:

node .claude/skills/skills-sh-growth-loop/examples/monitor-public-skill.mjs \
  owner/repo@skill-slug

For another supported agent, run the same examples/monitor-public-skill.mjs file from the installed skill directory reported by the installer. The helper validates the one public target, creates private temporary state and report files, runs the production monitor command once, prints one compact JSON line, and removes its temporary files before exiting. It makes public skills.sh GET requests but does not install another skill, write to skills.sh, or write to a social platform. Do not post or reply.

Dated one-target public monitor proof

This 2026-08-07 card records one reproducible public GET result. It is not install, adoption, organic-user, automatic-indexing, or attribution evidence.

For an indexed target, the compact success shape is exactly:

{"ok":true,"command":"monitor","snapshot":{"targetCount":1,"indexedCount":1,"missing":[]}}

For a missing exact listing, the compact success shape is exactly:

{"ok":true,"command":"monitor","snapshot":{"targetCount":1,"indexedCount":0,"missing":["skill-slug"]}}

Both are successful monitor runs because ok:true and command:"monitor" are present. indexedCount:0 with a populated missing array reports a registry result, not a command failure. Live rank, observed-install counts, and timestamps vary and are deliberately omitted from this compact handoff.

Then submit the structured tester report. Select Installed and ran only after monitor returns JSON. A failed or partial attempt is useful feedback but does not count as verified organic use. Never paste credentials, private repository details, complete local paths, ledgers, or full logs.

Pick any one of the ten L4A skills

Pick one of ten L4A skills for a real independent evaluation

The independent evaluation menu collects one safe installed-copy test and the matching structured report for every canonical product skill. Choose only a skill you genuinely wanted to evaluate, actually run it, and report one honest matched field, mismatch, or friction point. Maintainer, teammate, CI, bot, copied, and simulated results never count toward the organic-user goal. The menu performs zero social writes and is not install, adoption, indexing, organic-user, or attribution evidence.

GitHub default-branch release, skills.sh indexing, refresh of an already installed copy, and verified organic use are four separate states. Follow the bundled publication and update contract before claiming that a main change updated distribution or existing installs.

The bundled CLI is read-only with respect to skills.sh and social platforms. Its one-shot monitor command takes a fresh registry snapshot, renders every report artifact at the same timestamp, compares the result with the prior snapshot, and returns the fail-closed campaign gate plus machine-readable safe operator actions:

node skills/skills-sh-growth-loop/scripts/gtm-loop.mjs monitor \
  --targets /absolute/path/to/targets.json \
  --state /absolute/path/to/private-state \
  --out /absolute/path/to/report

Run that command from an operator-owned scheduler; the package intentionally does not create a scheduler or publish anything. A monitor cycle appends only registry metrics and rewrites derived report artifacts. It never mutates campaign, engagement, or verified-user evidence ledgers.

The CLI renders a Markdown report, an aggregate SVG scorecard, a feed-sized 1200×630 social card, and one source-qualified 1200×630 status card per skill. The report keeps registry repair (prioritySkill) separate from the next eligible promotion experiment (campaignCandidate), so one missing index entry cannot starve the other skills of testing. Posting and replying remain separate, rules-checked, human-approved steps performed with the user's chosen community tools.

Every report run writes the per-skill cards under <out>/skill-cards/ from the same timestamped report object as report.json. These are GTM status artifacts, not product-performance or attribution proof. An ELIGIBLE EXPERIMENT badge can appear only for the exact current campaign candidate after the global campaign gate opens; repair, cooldown, observation, and negative-signal cards remain marked as wait or pause artifacts.

Structured GitHub tester reports use a dedicated fail-closed evidence gate. Its evidence github-review command defaults to preview-only eligibility; persistence requires repeating the same fresh normalized review packet with --write --confirm and the preview digest. Generic evidence add --kind github-issue is rejected. See the bundled data contract for the explicit installed-and-ran, own-purpose, privacy, safety, and external-human checks and the trusted-review boundary.

Before another live experiment, run the fail-closed timing gate:

node skills/skills-sh-growth-loop/scripts/gtm-loop.mjs campaign ready \
  --state /absolute/path/to/private-state

The default 72-hour window must elapse and a fresh observation must be both observed and ingested at or after its deadline. Mutation commands use the current wall clock, reject --at, and reject future observations. Early health checks remain useful evidence but cannot unlock another live campaign. campaign add --status live enforces the same invariant under an exclusive state lock. Legacy observations without ingestedAt remain historical evidence but cannot unlock the gate.

This package targets Agent Plugins v1 with a root plugin.json; its skill follows the Agent Skills specification.

License

MIT