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