PM AI Skill to Package
Use this skill when a team wants to turn a repeatable AI workflow into a
portable skill bundle that an agent can discover, load, and use. Treat the
bundle as a product surface with a routing contract, capability boundary,
version, and recovery path.
The output is a package and release decision packet. It is not an installer,
registry, runtime, provider recommendation, security certification, or proof
that a skill triggered or completed a live task.
When to use
Use it when:
- a team wants to publish a reusable
SKILL.md with references, scripts,
templates, or other support files;
- a prompt or workflow is being moved from a one-off conversation into a
discoverable skill package;
- a skill description may overlap with other skills and needs positive and
negative routing boundaries;
- a package has different behavior across local files, a hosted API, a coding
agent, or another target surface;
- a maintainer needs to decide what is always visible as metadata, what loads
only after a trigger, and what runs or reads on demand;
- a package update needs a pinned version, migration note, disable route,
rollback, provenance, license, or permission review.
Use pm-ai-tool-to-contract when the main decision is a tool schema or side
effect. Use pm-ai-prompt-to-version when the main decision is a prompt
revision inside an existing product. Use pm-ai-context-to-contract when the
main decision is runtime context selection. Use
pm-ai-first-use-to-activation when a packaged capability already exists and
the question is user activation or value.
Do not use
Do not use this skill to:
- install, upload, execute, enable, delete, or distribute a third-party
package;
- hide shell, network, browser, filesystem, secret, hook, MCP, or external
write capability behind a friendly description;
- claim universal compatibility across agent products or versions;
- copy private prompts, customer content, credentials, tokens, cookies,
private URLs, or unlicensed references/assets into a public bundle;
- infer trigger quality, security, reliability, adoption, or star growth from
file existence, one fixture, or a vendor description.
Write Not provided, Not verified, Not measured, Not run, or
Not covered when evidence is missing.
Workflow
1. Frame the package decision
Write one sentence:
We need to decide whether capability ... can be packaged as skill ...
for surface ... and user job ... within ... routing, permission,
provenance, compatibility, and recovery boundaries.
Record the job, current workaround, package owner, target surface, consequence,
success oracle, last-known-good version, and what would make the package
unsafe or unusable.
2. Build the package identity ledger
Record stable metadata before writing marketing copy:
| Field |
Question |
skill_id / name |
Can an agent and maintainer identify it unambiguously? |
version |
What exact package state is under review? |
| Owner and maintainer |
Who answers routing, security, and breakage reports? |
| Source and commit |
Can the bundle and its dependencies be traced? |
| License |
Does it cover the actual instructions and bundled assets? |
| Compatibility |
Which host, runtime, and prerequisites are supported? |
| Data boundary |
What data may the skill read, write, or retain? |
| Last known good |
Which version can be restored? |
| Status |
draft, discoverable, loadable, verified, pilot, released, paused, disabled, or retired |
Do not use latest as a release receipt. If the target surface resolves a
floating version, record the resolved version and the risk of drift.
3. Define discovery and non-discovery
Write the job language that should trigger the skill and the nearby jobs that
must not trigger it. Test the description as routing metadata, not as a full
instruction manual.
For each positive case record user intent, required input, expected skill, and
why the match is specific. For each negative case record the neighboring skill
or manual route. If two skills match equally, ask for clarification or narrow
the description; do not load every candidate.
4. Map progressive disclosure
Separate the package into load stages:
- Metadata: name and description used for discovery.
- Instructions: the smallest
SKILL.md workflow loaded after a match.
- Resources: references, templates, examples, and assets read only when
the current job needs them.
- Scripts: deterministic code run only with a named purpose, input,
output, permission, and verification oracle.
For each file record load condition, expected context or permission cost,
owner, freshness, and fallback. A file path in prose is not proof that the
resource exists or can be read.
5. Inventory capability and permissions
Classify every package surface as none, read, write, execute, or
external. Record filesystem scope, shell commands, network destinations,
browser/session access, secrets, data classes, external side effects, rate or
cost caps, and human approval.
Treat skill instructions, scripts, references, tool results, and remote content
as untrusted until reviewed. Unknown executable or secret surfaces are Hold.
Do not let a package description silently grant permission.
6. Check provenance, license, and supply chain
Record source owner, exact commit or release, dependency lock state, license,
bundled-content rights, install instructions, dynamic fetches, hooks, MCP,
postinstall, telemetry, and secret access. Use reference, scoped pilot,
enabled, hold, or reject as the adoption decision.
Popularity is a discovery signal, not a security or quality result. A wrapper
license does not prove redistribution rights for a copied prompt, asset,
template, font, or dataset.
7. Compare target surfaces
Make a row for every declared surface. Record package location or upload mode,
checkout/branch/version behavior, when discovery runs, how the main file and
resources are loaded, runtime prerequisites, sharing scope, data retention,
network policy, and the evidence status.
If a repository scan happens only at session start, a later commit is not
automatically visible. If a surface is not tested, mark it Not verified.
8. Define verification and pilot
Use separate checks for:
- package structure and frontmatter;
- positive and negative discovery cases;
- referenced path and resource availability;
- script input/output and permission boundaries;
- provenance, license, and secret scan;
- target-surface load and runtime task oracle;
- user comprehension, fallback, disable, and rollback.
Keep static validation, load evidence, task success, security review, and
adoption evidence as different layers. A successful SKILL.md read is not a
completed task.
9. Set version, update, and disable rules
Choose a pinned version or an explicitly governed floating route. Name the
consumer compatibility window, migration steps, deprecation notice, rollback
target, disable owner, and manual fallback. If an update changes triggers,
permissions, scripts, or output shape, require a new review instead of a silent
patch.
10. Write the receipt and decision
Return one status:
Ship | Pilot | Hold | Disable | Retire | Need evidence
The receipt includes package identity, source/version, surface, capability
class, evidence status, decision owner, rollback target, and limitations. Never
include secrets, private raw instructions, customer content, or hidden
reasoning. End with the smallest next observation that could change the
decision.
Output contract
Return a PM AI Skill to Package Contract in this order:
- Package decision on the desk: job, workaround, owner, target surface,
success oracle, status, and evidence boundary.
- Identity and provenance ledger: name, skill ID, version, source commit,
owner, license, compatibility, dependencies, data boundary, and
last-known-good.
- Discovery contract: positive triggers, required inputs, negative routes,
neighboring skills, ambiguity behavior, and trigger evidence.
- Progressive disclosure map: metadata, instructions, references,
templates/assets, scripts, load conditions, and context/permission cost.
- Capability inventory: read/write/execute/external surfaces, data classes,
network, browser, secrets, side effects, caps, approval, and fallback.
- Surface compatibility matrix: location/upload, checkout/version, load
timing, sharing, retention, prerequisites, evidence, and unknowns.
- Verification register: static, routing, path, security, runtime, UX,
disable, rollback, and adoption checks with owners and status.
- Version and release plan: pin/latest choice, migration, pilot audience,
stop rule, disable, rollback, and deprecation.
- Privacy-safe package receipt: sanitized metadata only.
- Not covered: unresolved trigger, runtime, security, compatibility,
licensing, user, cost, and adoption questions.
- Next action: one owner, one smallest observation, and the decision rule.
Common rationalizations and red flags
| Rationalization |
Required response |
| "It is only a markdown file." |
Check routing, data, license, and linked resources. |
| "The description is obvious." |
Run positive and negative trigger cases. |
| "The script is optional." |
Inventory it or remove it from the package. |
"latest is easier." |
Record resolved version and a rollback target. |
| "The vendor says it works." |
Treat the statement as a source claim, not runtime evidence. |
| "A popular repo is safe." |
Run provenance, permission, and supply-chain review. |
| "One successful load proves it." |
Require a task oracle and failure/recovery case. |
Red flags include unknown remote fetches, hidden instructions in references,
unscoped shell/network/browser access, secret-shaped input, ambiguous
descriptions, missing resources, unpinned updates, no disable owner, and a
release note that says "works everywhere" without surface evidence.
Edge cases
- Two skills match: clarify the job or narrow metadata; do not chain both by
default.
- Missing reference: stop or use an explicitly named fallback; never invent
the missing content.
- Unknown executable surface:
Hold until scripts, hooks, MCP, network,
and secret access are reviewed.
- License mismatch: do not publish copied content; route to the rights
owner or replace it with an authorized source.
- Stale repository checkout: record the branch/commit and start a fresh
session or re-upload according to the host's documented behavior.
- Floating version drift: compare the resolved package with the pinned
last-known-good before allowing a pilot.
- Partial task success: record the load and task states separately; offer a
manual route rather than calling the skill complete.
- Mobile or unavailable host: mark the surface
Not verified or define a
manual fallback; do not infer portability.
- Synthetic fixture: label it fictional and limit claims to package shape
and the named fixture behavior.
Final check
Before returning the contract, confirm:
- package identity, owner, source version, license, compatibility, and
last-known-good are visible or explicitly marked missing;
- positive and negative discovery cases have specific jobs and owners;
- metadata, instructions, resources, and scripts have load stages and paths;
- every executable, network, browser, secret, data, and external-write surface
is inventoried or marked
Not applicable;
- each target surface has a compatibility row and current evidence status;
- provenance, licensing, security, user, runtime, disable, and rollback checks
are separate from file existence;
- no raw sensitive material, unlicensed content, hidden reasoning, or fabricated
metric entered the receipt;
- the status is one of
Ship | Pilot | Hold | Disable | Retire | Need evidence
and the next decision-changing observation is named.
1---2name: pm-ai-skill-to-package3description: Use when an AI capability may be packaged as a reusable agent skill. Produce a source-bounded package contract covering identity, discovery triggers, progressive disclosure, resources and scripts, permissions, surface compatibility, provenance, versioning, verification, disablement, rollback, and a truthful release decision.4---56# PM AI Skill to Package78Use this skill when a team wants to turn a repeatable AI workflow into a9portable skill bundle that an agent can discover, load, and use. Treat the10bundle as a product surface with a routing contract, capability boundary,11version, and recovery path.1213The output is a package and release decision packet. It is not an installer,14registry, runtime, provider recommendation, security certification, or proof15that a skill triggered or completed a live task.1617## When to use1819Use it when:2021- a team wants to publish a reusable `SKILL.md` with references, scripts,22 templates, or other support files;23- a prompt or workflow is being moved from a one-off conversation into a24 discoverable skill package;25- a skill description may overlap with other skills and needs positive and26 negative routing boundaries;27- a package has different behavior across local files, a hosted API, a coding28 agent, or another target surface;29- a maintainer needs to decide what is always visible as metadata, what loads30 only after a trigger, and what runs or reads on demand;31- a package update needs a pinned version, migration note, disable route,32 rollback, provenance, license, or permission review.3334Use `pm-ai-tool-to-contract` when the main decision is a tool schema or side35effect. Use `pm-ai-prompt-to-version` when the main decision is a prompt36revision inside an existing product. Use `pm-ai-context-to-contract` when the37main decision is runtime context selection. Use38`pm-ai-first-use-to-activation` when a packaged capability already exists and39the question is user activation or value.4041## Do not use4243Do not use this skill to:4445- install, upload, execute, enable, delete, or distribute a third-party46 package;47- hide shell, network, browser, filesystem, secret, hook, MCP, or external48 write capability behind a friendly description;49- claim universal compatibility across agent products or versions;50- copy private prompts, customer content, credentials, tokens, cookies,51 private URLs, or unlicensed references/assets into a public bundle;52- infer trigger quality, security, reliability, adoption, or star growth from53 file existence, one fixture, or a vendor description.5455Write `Not provided`, `Not verified`, `Not measured`, `Not run`, or56`Not covered` when evidence is missing.5758## Workflow5960### 1. Frame the package decision6162Write one sentence:6364> We need to decide whether capability `...` can be packaged as skill `...`65> for surface `...` and user job `...` within `...` routing, permission,66> provenance, compatibility, and recovery boundaries.6768Record the job, current workaround, package owner, target surface, consequence,69success oracle, last-known-good version, and what would make the package70unsafe or unusable.7172### 2. Build the package identity ledger7374Record stable metadata before writing marketing copy:7576| Field | Question |77| --- | --- |78| `skill_id` / `name` | Can an agent and maintainer identify it unambiguously? |79| `version` | What exact package state is under review? |80| Owner and maintainer | Who answers routing, security, and breakage reports? |81| Source and commit | Can the bundle and its dependencies be traced? |82| License | Does it cover the actual instructions and bundled assets? |83| Compatibility | Which host, runtime, and prerequisites are supported? |84| Data boundary | What data may the skill read, write, or retain? |85| Last known good | Which version can be restored? |86| Status | `draft`, `discoverable`, `loadable`, `verified`, `pilot`, `released`, `paused`, `disabled`, or `retired` |8788Do not use `latest` as a release receipt. If the target surface resolves a89floating version, record the resolved version and the risk of drift.9091### 3. Define discovery and non-discovery9293Write the job language that should trigger the skill and the nearby jobs that94must not trigger it. Test the description as routing metadata, not as a full95instruction manual.9697For each positive case record user intent, required input, expected skill, and98why the match is specific. For each negative case record the neighboring skill99or manual route. If two skills match equally, ask for clarification or narrow100the description; do not load every candidate.101102### 4. Map progressive disclosure103104Separate the package into load stages:1051061. **Metadata:** name and description used for discovery.1072. **Instructions:** the smallest `SKILL.md` workflow loaded after a match.1083. **Resources:** references, templates, examples, and assets read only when109 the current job needs them.1104. **Scripts:** deterministic code run only with a named purpose, input,111 output, permission, and verification oracle.112113For each file record load condition, expected context or permission cost,114owner, freshness, and fallback. A file path in prose is not proof that the115resource exists or can be read.116117### 5. Inventory capability and permissions118119Classify every package surface as `none`, `read`, `write`, `execute`, or120`external`. Record filesystem scope, shell commands, network destinations,121browser/session access, secrets, data classes, external side effects, rate or122cost caps, and human approval.123124Treat skill instructions, scripts, references, tool results, and remote content125as untrusted until reviewed. Unknown executable or secret surfaces are `Hold`.126Do not let a package description silently grant permission.127128### 6. Check provenance, license, and supply chain129130Record source owner, exact commit or release, dependency lock state, license,131bundled-content rights, install instructions, dynamic fetches, hooks, MCP,132postinstall, telemetry, and secret access. Use `reference`, `scoped pilot`,133`enabled`, `hold`, or `reject` as the adoption decision.134135Popularity is a discovery signal, not a security or quality result. A wrapper136license does not prove redistribution rights for a copied prompt, asset,137template, font, or dataset.138139### 7. Compare target surfaces140141Make a row for every declared surface. Record package location or upload mode,142checkout/branch/version behavior, when discovery runs, how the main file and143resources are loaded, runtime prerequisites, sharing scope, data retention,144network policy, and the evidence status.145146If a repository scan happens only at session start, a later commit is not147automatically visible. If a surface is not tested, mark it `Not verified`.148149### 8. Define verification and pilot150151Use separate checks for:152153- package structure and frontmatter;154- positive and negative discovery cases;155- referenced path and resource availability;156- script input/output and permission boundaries;157- provenance, license, and secret scan;158- target-surface load and runtime task oracle;159- user comprehension, fallback, disable, and rollback.160161Keep static validation, load evidence, task success, security review, and162adoption evidence as different layers. A successful `SKILL.md` read is not a163completed task.164165### 9. Set version, update, and disable rules166167Choose a pinned version or an explicitly governed floating route. Name the168consumer compatibility window, migration steps, deprecation notice, rollback169target, disable owner, and manual fallback. If an update changes triggers,170permissions, scripts, or output shape, require a new review instead of a silent171patch.172173### 10. Write the receipt and decision174175Return one status:176177`Ship | Pilot | Hold | Disable | Retire | Need evidence`178179The receipt includes package identity, source/version, surface, capability180class, evidence status, decision owner, rollback target, and limitations. Never181include secrets, private raw instructions, customer content, or hidden182reasoning. End with the smallest next observation that could change the183decision.184185## Output contract186187Return a `PM AI Skill to Package Contract` in this order:1881891. **Package decision on the desk:** job, workaround, owner, target surface,190 success oracle, status, and evidence boundary.1912. **Identity and provenance ledger:** name, skill ID, version, source commit,192 owner, license, compatibility, dependencies, data boundary, and193 last-known-good.1943. **Discovery contract:** positive triggers, required inputs, negative routes,195 neighboring skills, ambiguity behavior, and trigger evidence.1964. **Progressive disclosure map:** metadata, instructions, references,197 templates/assets, scripts, load conditions, and context/permission cost.1985. **Capability inventory:** read/write/execute/external surfaces, data classes,199 network, browser, secrets, side effects, caps, approval, and fallback.2006. **Surface compatibility matrix:** location/upload, checkout/version, load201 timing, sharing, retention, prerequisites, evidence, and unknowns.2027. **Verification register:** static, routing, path, security, runtime, UX,203 disable, rollback, and adoption checks with owners and status.2048. **Version and release plan:** pin/latest choice, migration, pilot audience,205 stop rule, disable, rollback, and deprecation.2069. **Privacy-safe package receipt:** sanitized metadata only.20710. **Not covered:** unresolved trigger, runtime, security, compatibility,208 licensing, user, cost, and adoption questions.20911. **Next action:** one owner, one smallest observation, and the decision rule.210211## Common rationalizations and red flags212213| Rationalization | Required response |214| --- | --- |215| "It is only a markdown file." | Check routing, data, license, and linked resources. |216| "The description is obvious." | Run positive and negative trigger cases. |217| "The script is optional." | Inventory it or remove it from the package. |218| "`latest` is easier." | Record resolved version and a rollback target. |219| "The vendor says it works." | Treat the statement as a source claim, not runtime evidence. |220| "A popular repo is safe." | Run provenance, permission, and supply-chain review. |221| "One successful load proves it." | Require a task oracle and failure/recovery case. |222223Red flags include unknown remote fetches, hidden instructions in references,224unscoped shell/network/browser access, secret-shaped input, ambiguous225descriptions, missing resources, unpinned updates, no disable owner, and a226release note that says "works everywhere" without surface evidence.227228## Edge cases229230- **Two skills match:** clarify the job or narrow metadata; do not chain both by231 default.232- **Missing reference:** stop or use an explicitly named fallback; never invent233 the missing content.234- **Unknown executable surface:** `Hold` until scripts, hooks, MCP, network,235 and secret access are reviewed.236- **License mismatch:** do not publish copied content; route to the rights237 owner or replace it with an authorized source.238- **Stale repository checkout:** record the branch/commit and start a fresh239 session or re-upload according to the host's documented behavior.240- **Floating version drift:** compare the resolved package with the pinned241 last-known-good before allowing a pilot.242- **Partial task success:** record the load and task states separately; offer a243 manual route rather than calling the skill complete.244- **Mobile or unavailable host:** mark the surface `Not verified` or define a245 manual fallback; do not infer portability.246- **Synthetic fixture:** label it fictional and limit claims to package shape247 and the named fixture behavior.248249## Final check250251Before returning the contract, confirm:252253- package identity, owner, source version, license, compatibility, and254 last-known-good are visible or explicitly marked missing;255- positive and negative discovery cases have specific jobs and owners;256- metadata, instructions, resources, and scripts have load stages and paths;257- every executable, network, browser, secret, data, and external-write surface258 is inventoried or marked `Not applicable`;259- each target surface has a compatibility row and current evidence status;260- provenance, licensing, security, user, runtime, disable, and rollback checks261 are separate from file existence;262- no raw sensitive material, unlicensed content, hidden reasoning, or fabricated263 metric entered the receipt;264- the status is one of `Ship | Pilot | Hold | Disable | Retire | Need evidence`265 and the next decision-changing observation is named.