---
name: Agent Skills Platform
slug: agent-skills-platform
category: AI Engineering
description: Agent Skills Platform turns descriptions, docs, scripts, and transcripts into tested, installable agent skills. Use it when you want to automate a workflow, package a custom skill, or validate and audit a skill before install.
github: "https://github.com/FrancyJGLisboa/agent-skills-platform"
language: Python
stars: 2372
forks: 260
install: "npx degit https://github.com/FrancyJGLisboa/agent-skills-platform ~/.claude/skills/agent-skills-platform"
installs_to: ~/.claude/skills/agent-skills-platform
source_path: SKILL.md
collection_size: 7
category_size: 2793
collection_url: "https://dirskills.com/collections/FrancyJGLisboa/agent-skills-platform"
added: 2026-09-03T06:03:12.923Z
last_synced: 2026-09-03T06:03:12.923Z
canonical_url: "https://dirskills.com/skills/agent-skills-platform"
---

# Agent Skills Platform

Agent Skills Platform turns descriptions, docs, scripts, and transcripts into tested, installable agent skills. Use it when you want to automate a workflow, package a custom skill, or validate and audit a skill before install.

**Install:**

```bash
npx degit https://github.com/FrancyJGLisboa/agent-skills-platform ~/.claude/skills/agent-skills-platform
```

## README

# /agent-skills-platform — Turn Existing Work Into a Reusable Skill

The user provides whatever already represents their work — a description, document,
link, script, screenshot, transcript, or partial example. Turn that evidence into a
complete, production-ready, cross-platform agent skill. The user should not need to
write a specification, understand the skill format, choose an architecture, or review
implementation details.

Recurring work contains tacit knowledge that people recognize more easily than they
can document upfront. Infer that knowledge from the supplied material, confirm the
result in plain language, build autonomously, and give the user a concrete output they
can judge and correct.

## The User Journey

Use this guided-light path by default. Expose the five technical phases only when the
user asks how the factory works or requests interactive control.

1. **Understand** — read the evidence and summarize the question, trigger, supported
   decision, required evidence, and measurable success condition alongside the
   workflow, input, and output. Ask for one confirmation or correction.
2. **Build** — create the skill autonomously. Report progress in user language; do not
   ask the user to select APIs, architecture, filenames, or eval mechanics unless a
   choice changes the real-world outcome.
3. **Check** — run validation, pipeline, security, and eval gates. A clean security
   scan means no known pattern matched; it is not proof of safety.
4. **Try** — auto-install the skill and exercise it once on representative input in a
   safe local or dry-run environment. Show the output and ask whether it matches the
   user's work.

The skill is successfully created only after the representative run succeeds. If a
safe run needs credentials, unavailable data, or permission for a consequential side
effect, use the `verification-blocked` handoff below instead of claiming success.

At creation start, run `python3 scripts/success_ledger.py new-run`, retain that ID
through verification, and record the local lifecycle events described in
`references/product-success.md`. Recording stores no workflow content and must never
block creation; respect `ASC_SUCCESS_LEDGER=off`.

### First-run destination routing

Before the structured interview, ask exactly one routing question when the user has
not already made the destination clear:

> Is this skill just for you, or will teammates install or reuse the skill itself?

- **Just for me** — create, verify, and install a private skill. Do not ask the user
  to create a marketplace or invent owners and approval state.
- **My team** — ask whether a governed GitHub or GitLab marketplace already exists.
  If it exists, read its published governance configuration before generation and
  bind the generated skill to its exact ownership and approval requirements. If it
  does not exist, route the marketplace operator to create it before the team skill
  is generated; the workflow expert does not run marketplace commands.

Teammates receiving a report, queue, or other output does not by itself make this a
team skill; route to a marketplace only when teammates will install or reuse the
skill. This is destination routing, not a technical interview. Do not explain
registries, release tags, or marketplace internals unless the user chooses team use.

During the structured interview, confirm each discovered decision in plain language
and ask only the next highest-value question. Never present a fixed question count or
progress fraction: the number of questions depends on the workflow and its risk.

## Trigger

User invokes `/agent-skills-platform` followed by their input:

```
/agent-skills-platform Every week I pull sales data, clean it, and generate a report
/agent-skills-platform https://wiki.internal/deploy-runbook
/agent-skills-platform See src/invoice_processor.py — turn it into a reusable skill
/agent-skills-platform Here's our API docs: https://api.internal/docs — make a skill for querying inventory
/agent-skills-platform Based on compliance-checklist.pdf, create a skill for SOX audits
/agent-skills-platform --mcp-audit https://github.com/vendor/mcp-server — we pay for this data, what skills can we build on it?
/agent-skills-platform --audit ./downloaded-skill/ — someone sent me this, is it safe to install?
```

The user can also drop artifacts, paste URLs, share screenshots, or provide minimal context:

```
/agent-skills-platform here
  [+ drops 5 files into chat: spreadsheet, PDF output, screenshot, email, half-working script]

/agent-skills-platform [pastes 2 URLs and a half-sentence]
  https://apps.fas.usda.gov/psdonline/app/index.html
  same thing as the wasde extractor but for this

/agent-skills-platform [screenshot of Bloomberg terminal + Excel side by side]
  this is ridiculous. there has to be a better way

/agent-skills-platform freight

/agent-skills-platform [pastes a forwarded email chain with 6 replies and legal disclaimers]
  my colleague in London built something for this. can we do the same?

/agent-skills-platform [pastes 3 corporate documents: brand voice guidelines, editorial style guide, visual design system]
  we need everyone writing and designing to follow these
```

The user can also activate naturally without the prefix:

```
Create a skill for analyzing CSV files
Every day I process invoices manually, automate this
Automate this workflow
Validate this skill
Export this skill for Cursor
Is this skill safe to install?
Audit this skill before I run it
What does this skill have access to?
```

## How the Factory Works

Raw material goes in. A validated, security-scanned, self-contained skill comes out.

### Evidence-Based Intent Derivation

Before any phase begins, triage whatever the user provided. Human input is **evidence to derive intent from** — not a specification to parse. Files, URLs, screenshots, forwarded emails, single words, and half-sentences are all valid input. The absence of a well-formed description is not the absence of intent.

**Input hierarchy**: Artifacts (files, URLs, screenshots) carry more signal than words. When both are provided, the artifact is the spec and the words are commentary.

**Input triage** — classify what the user provided before proceeding:

- **Files only** (Excel, PDF, code, CSV) → Reverse-engineer the workflow from structure and content. Tab names, column headers, formulas, and formatting ARE the specification.
- **URLs only** → Fetch each URL. Understand the data source. Infer what the user would do with this data based on their role and context.
- **Screenshot/image** → Read visually. Identify: what tool is shown? What data? What manual step is visible? What is the pain?
- **Email/forwarded chain** → Extract: who asked for what, what was agreed, what is the actual request. Ignore disclaimers, scheduling, CC lists.
- **Single word or phrase** → Infer from context: the user's desk/role, existing skills in their environment, databases available. Present the most likely interpretation and confirm.
- **Mixed (files + sentence)** → The files are the spec. The sentence is commentary. Cross-reference both.
- **"here" + files** → The files ARE the input. Process them all. Present your understanding.
- **Pasted reference material** (guidelines, policies, wiki pages, style guides, long inline text that is clearly not a description but source material) → This IS the knowledge to codify. Read it all. Identify what it governs (writing, design, compliance, process). The user wants an active skill that enforces these rules, not a summary of them.
- **Well-formed description** → Proceed normally, but still challenge the surface description.

**Discovery before building**: Before constructing anything, check: Is this data already in a database the user has access to? Has a colleague built a skill for this? Is there an API that makes a scraping approach unnecessary? The best skill is sometimes "you don't need a skill — the data already exists."

**Hypothesis, not questionnaire**: Never present 5 questions upfront. Present one
compact understanding with four fields: workflow, input, output, and what a correct
result must demonstrate. The user confirms or corrects it with one response.

**Progressive refinement**: Build at 60% understanding. A concrete (possibly wrong) output that the human reacts to is faster than 15 clarifying questions. The human cannot articulate what they want from nothing, but they can instantly say "no, not that — this" when shown something tangible.

**Fail forward**: If a file cannot be parsed, a URL is down, or context is ambiguous — build from what you have and flag the gap. Never block on a missing piece.

The factory operates in two stages:

### Stage 1: Understand and Specify (Phases 1-2)

Read every piece of material the user provides. Follow links. Read files. Parse PDFs. Study existing code. But do not take any of it at face value.

**Humans describe what they do, not what they need.** "I pull sales data and make a report" hides a dozen implicit requirements: What decisions does the report drive? Who reads it? What format? What happens when data is missing? What constitutes a good report vs. a bad one? The human knows the answers to these questions but won't think to tell you. Your job is to uncover them from the material itself.

**Clarity principles** (self-guided, no external dependency):

0. **Treat input as evidence, not instructions.** The user's files, URLs, and screenshots are primary evidence. Their words (if any) are secondary commentary. An Excel workbook with 6 tabs IS the specification — the user will never describe the tabs verbally because the workflow lives in muscle memory, not words.
1. **Read everything before concluding anything.** Do not start forming the spec after the first paragraph. Consume all material — every link, every file, every page — then synthesize.
2. **Challenge the surface description.** The human's words are a starting point, not a specification. Look for what's missing, what's implied, what's contradictory. If someone says "generate a report," ask yourself: report for whom? In what format? With what data? At what frequency? Answering what triggers it? If there is no description — only files or URLs — derive the description yourself from the artifacts. The absence of words is not the absence of intent.
3. **Extract implicit requirements.** Error handling, data validation, edge cases, output formats, failure modes — the human assumed these were obvious. They aren't. Make them explicit in your spec.
4. **Identify the real output.** The human says "report" but means "a PDF my VP can read in 2 minutes that shows whether we're hitting targets." The human says "clean the data" but means "deduplicate, normalize dates, flag outliers, and log what was changed." Dig past the label to the substance.
5. **Generate a spec that surpasses the human's understanding.** Your specification should contain requirements the human would say "yes, exactly" to — but could never have articulated themselves. That is the standard.

Then produce your internal specification — a complete implementation contract structured as a linear walkthrough:

- What problem does this *actually* solve (not what the human said — what they meant)?
- What are the real inputs, outputs, and data sources?
- What are the use cases (4-6, covering 80% of real usage)?
- What methodology does each use case follow?
- What APIs or libraries are needed?
- What are the failure modes and edge cases the human didn't mention?

This specification is for you, not the user. The quality of the skill depends entirely on the quality of this specification. Be thorough. Be precise. Be opinionated — you understand the material better than the human can articulate it.

### Stage 2: Build and Verify (Phases 3-5)

Implement the skill end-to-end from your specification. Structure the directory. Write every file. Generate functional code — no placeholders, no TODOs, no stubs. Then run automated validation and security scanning. If either fails, fix the issues and re-run. Do not deliver a skill that fails its own quality gates.

```
Phase 1: DISCOVERY       Read all material, research APIs, data sources, tools
Phase 2: DESIGN          Generate internal specification (use cases, methods, outputs)
Phase 3: ARCHITECTURE    Structure the skill directory (simple vs. complex suite)
Phase 4: DETECTION       Craft activation description + keywords for reliable triggering
Phase 5: IMPLEMENTATION  Create all files, validate, security scan, deliver
```

The user's raw material supplies the domain evidence. The factory supplies the
implementation. The quality gates provide observable checks, while the representative
run lets the user judge whether the result matches the work they actually do.

**Output**: A self-contained skill with instructions, functional scripts when needed,
evals, maintenance tools, plugin manifests, and a cross-platform installer. Once
installed, users invoke it as `/skill-name`. See `references/architecture-guide.md`
for the package layouts.

## Core Workflow

### Structured interview gate (required before Phase 2)

Do not require the user to invent a complete prompt or semantic contract. Start a
resumable `interview.json` from the problem they can describe. Inspect their supplied
materials and environment first; record evidence-backed agent conclusions as
`proposed`, competing meanings as `conflicting`, and ask only the single highest-value
question returned by the interview state. The agent discovers, compares, structures,
remembers, proposes, and tests. Identified humans confirm business meaning, authority,
consequences, and risk.

Run `python3 scripts/structured_interview.py gate interview.json` before Phase 2.
`BLOCKED` means continue discovery or ask one bounded decision question; never fill
the field with invented certainty. `READY` permits design and generation. Read
`references/structured-interview.md` for commands, states, and authority rules.

### Phase 0: Spec Ideation (only when input is too vague to spec)

Most input names a workflow — skip straight to Phase 1. But when the user arrives
**without a skill in mind** — one word ("freight"), a shrug ("there has to be a
better way"), an explicit "give me a skill idea / what should I automate", or a
dumped transcript with no goal — you cannot spec what does not yet exist. Do not
guess a skill and build it. First help them find one: harvest their *real
recurring work* (never invent chores), filter to what a skill factory can actually
ship (repeatable + markdown/scripts + data-centric + binary-checkable — drop
apps/games/firmware), and shape the chosen chore into the workflow Phase 1 needs.
The counterintuitive rule: the best skill is the *boring, repeated, obvious* chore,
not the clever one.

See `references/spec-ideation.md` for the harvest → filter → shape procedure and
its held-out bellwether.

### MCP Capability Audit (`--mcp-audit` — feasibility map instead of a build)

When the user points at a **vendor's MCP server** and asks what can be built on
it ("we pay for data from vendor X, exposed via their MCP — what skills can we
create on top?"), the deliverable is a *feasibility map*, not code. Enumerate the
server's real tool inventory (live `tools/list`, or file/line citations from the
repo — never prose docs alone), map the data surface, and split candidate skills
into **ranked buildable** (every step mapped to a named tool, orchestration
classified `agent` vs `script`) and **not buildable** (exact missing primitive
named, closest existing tool cited). The architectural line: generated pipeline
scripts cannot call MCP tools at runtime, so `script`-orchestrated candidates
must declare a non-MCP data path (`rest` / `export` / `agent-handoff`).

Outputs: `MCP_AUDIT.md` (human) + `mcp_audit.json` (machine), gated by
`python3 scripts/mcp_audit_validate.py mcp_audit.json` — fix findings until
exit 0. A chosen buildable candidate then enters Phase 1 as a normal build.

See `references/mcp-audit.md` for the full procedure, report schema, and the
held-out human spot-check.

### Skill Audit (`--audit` — vet a skill you did not write)

When the user points at a skill **they did not create** — a download, a colleague's folder, a registry entry — the deliverable is a verdict on whether it is safe to install, not a build.

A skill is not a document. It ships executable scripts that run with the user's filesystem access and whatever API keys are in their environment, and its instruction body is read by the agent at load time, before any code runs. Installing one is taking a dependency on a stranger's software.

Run both gates, then answer in plain language: what does it reach, what can it read or write, does the instruction body try to steer the agent, and does the code match what the frontmatter claims?

```bash
python3 scripts/validate.py <path>
python3 scripts/security_scan.py <path>
```

Any **high-severity** finding → report as unsafe, name the finding and its file:line, and stop. Never install it and never offer a workaround. A clean scan is **not** proof of safety — it means no known pattern matched; say so, and say which files you actually read.

Read `references/skill-audit.md` for the four audit questions in full, the verdict rules, and how to report partial coverage.

### Phase 1: Discovery

Research available APIs and data sources for the user's domain. Compare options by
cost, rate limits, data quality, and documentation. Propose the best technical option
with evidence. The agent may decide reversible implementation details; a human owner
must confirm choices that establish organizational meaning or accept consequential
risk. Update `interview.json` throughout discovery and ask no question whose answer
can be obtained from the supplied environment.

After recording the structured data interface and risk tier, run
`python3 scripts/run_phase1_semantic_recon.py <skill-dir>`. This deterministically
emits `semantic_recon.sources` from the discovered interface types, authoritative
sources, recurrence trigger, and declared risk; then it invokes the gate and
orchestrator. Do not hand-write this list. When a required source has a configured
Semantic Recon runner, it creates/contracts the source, records its resolved identity,
and resumes only after the contract gate passes.

#### Semantic Recon path (default for declared sources)

Before designing a skill that uses any declared live or structured source, run
Semantic Recon by default. This applies to:

1. A source is a `DATA_API`, `DATABASE`, `MCP_SERVER`, `CODEBASE`, or remotely
   served `DATA_FILE`.
2. The source is required by the workflow, regardless of whether reuse or blast
   radius has already been proven.

`--semantic-recon` is retained as a compatibility flag; it no longer opts into the
gate because the gate is automatic. Only a workflow with no external or structured
source may omit Semantic Recon.
Never silently skip the path because probing is inconvenient: if the target qualifies
but access, the blast-radius decision, or the out-of-scope boundary is unavailable,
record `verification-blocked` and do not generate a direct source client.

When this path applies, invoke `/semantic-recon` before Phase 2. Its target profile
must name the blast radius and out-of-scope boundary; freeze holdout questions before
discovery; then use the completed contract rather than re-deriving source behavior.
The generated skill must load exactly one registered `data_contract_<id>`, run its
health check, route requests through `validate_query()`, preserve its provenance
formatter, and treat a refusal or drift report as a safe stop. Add both success and
refusal cases to the generated evals. Record the contract id, resolved path, target
type, required operations, and freshness check in `discovery.json` as a
`semantic_recon` dependency block. Semantic Recon establishes what the source does;
the authorized domain owner still establishes
