Author Flowglad Skill
Create a durable Flowglad Skill package and follow its immutable revision lifecycle.
Authoring process
- Gather the reusable behavior, inputs, outputs, failure conditions, and representative synthetic cases.
- Use
skills.list and skills.get when Flowglad MCP is available. Prefer a suitable active Skill over creating a duplicate.
- For a new Skill, derive the slug from the request. For an update, resolve the exact Skill and base revision; never infer identities from names.
- Read
references/PACKAGE_CONTRACT.md completely.
- Copy
assets/starter-package, rename SKILL.template.md to exactly SKILL.md, replace every placeholder, and extend only what the capability needs.
- For every selected Python function, read
references/OWS_COMPATIBILITY.md and use the OWS code ABI. Do not add a CLI wrapper around OWS code.
- Create or revise
SKILL.md, support files, scripts/**.py, and small flowglad-ows-code-test-v1 cases under tests/**.json. Keep scratch work outside the package.
- Run Python syntax checks and any available Flowglad OWS verifier. Do not execute the selected function as a positional-argument CLI.
- Run this skill's bundled helper as
python3 /path/to/author-flowglad-skill/scripts/build-package-payload.py PACKAGE_DIR for inline MCP preflight. For large packages or MCP byte-transport failures, add --transport staged and follow references/MCP_LIFECYCLE.md.
- Submit only when the user explicitly asks to create, upload, publish, or update the remote Skill.
- Poll
skills.get_lifecycle_request, then skills.get until the candidate reaches its final verification state. Repair rejected authored bytes as a new immutable candidate.
Package design
- Keep metadata in
meta.json and Markdown instructions without YAML frontmatter in SKILL.md.
- Prefer small deterministic functions with explicit injected inputs and JSON-compatible returns.
- Put structural constraints in the surrounding OWS schemas and semantic constraints in Python.
- Do not embed tokens, cookies, hidden credentials, or customer datasets. Use small synthetic test inputs.
- Default new Python packages to OWS-native verification with no CLI entrypoint declarations.
- Preserve stable CLI entrypoint identities only when explicitly maintaining a legacy CLI package; do not add them to new OWS-native packages.
- Never fabricate Flowglad IDs or conflate Skill verification with OWS publication.
Lifecycle integrity
skills.create and skills.create_candidate accept inline base64 for small packages.
- Use
skills.create_package_upload_session and skills.finalize_package_upload_session for large packages or transport failures; upload the exact declared bytes between those calls.
- An accepted lifecycle request or
verificationDispatched: true does not prove verification success.
- Treat
active, verified, rejected, and stale-base outcomes distinctly. Revisions are immutable.
- OWS publication separately validates the selected source function and exact revision.
Boundaries and handoff
Do not author the surrounding OWS workflow; use author-flowglad-ows. Do not weaken the verifier or mutate a remote Skill without explicit intent.
Return the complete package, any legacy entrypoint declarations, exact local checks, lifecycle/Skill/revision identities when submitted, final verification diagnostics, and OWS publication status as a separate state.
1---2name: author-flowglad-skill3description: Author and revise governed Flowglad Skill packages with Agent Skills instructions, OWS-native Python functions, synthetic JSON test cases, and lifecycle metadata. Use when creating or updating a reusable Flowglad capability, preparing a candidate revision, submitting through Flowglad MCP, following verification, or resolving package and OWS-ABI diagnostics.4---56# Author Flowglad Skill78Create a durable Flowglad Skill package and follow its immutable revision lifecycle.910## Authoring process11121. Gather the reusable behavior, inputs, outputs, failure conditions, and representative synthetic cases.132. Use `skills.list` and `skills.get` when Flowglad MCP is available. Prefer a suitable active Skill over creating a duplicate.143. For a new Skill, derive the slug from the request. For an update, resolve the exact Skill and base revision; never infer identities from names.154. Read `references/PACKAGE_CONTRACT.md` completely.165. Copy `assets/starter-package`, rename `SKILL.template.md` to exactly `SKILL.md`, replace every placeholder, and extend only what the capability needs.176. For every selected Python function, read `references/OWS_COMPATIBILITY.md` and use the OWS code ABI. Do not add a CLI wrapper around OWS code.187. Create or revise `SKILL.md`, support files, `scripts/**.py`, and small `flowglad-ows-code-test-v1` cases under `tests/**.json`. Keep scratch work outside the package.198. Run Python syntax checks and any available Flowglad OWS verifier. Do not execute the selected function as a positional-argument CLI.209. Run this skill's bundled helper as `python3 /path/to/author-flowglad-skill/scripts/build-package-payload.py PACKAGE_DIR` for inline MCP preflight. For large packages or MCP byte-transport failures, add `--transport staged` and follow `references/MCP_LIFECYCLE.md`.2110. Submit only when the user explicitly asks to create, upload, publish, or update the remote Skill.2211. Poll `skills.get_lifecycle_request`, then `skills.get` until the candidate reaches its final verification state. Repair rejected authored bytes as a new immutable candidate.2324## Package design2526- Keep metadata in `meta.json` and Markdown instructions without YAML frontmatter in `SKILL.md`.27- Prefer small deterministic functions with explicit injected inputs and JSON-compatible returns.28- Put structural constraints in the surrounding OWS schemas and semantic constraints in Python.29- Do not embed tokens, cookies, hidden credentials, or customer datasets. Use small synthetic test inputs.30- Default new Python packages to OWS-native verification with no CLI entrypoint declarations.31- Preserve stable CLI entrypoint identities only when explicitly maintaining a legacy CLI package; do not add them to new OWS-native packages.32- Never fabricate Flowglad IDs or conflate Skill verification with OWS publication.3334## Lifecycle integrity3536- `skills.create` and `skills.create_candidate` accept inline base64 for small packages.37- Use `skills.create_package_upload_session` and `skills.finalize_package_upload_session` for large packages or transport failures; upload the exact declared bytes between those calls.38- An accepted lifecycle request or `verificationDispatched: true` does not prove verification success.39- Treat `active`, `verified`, `rejected`, and stale-base outcomes distinctly. Revisions are immutable.40- OWS publication separately validates the selected source function and exact revision.4142## Boundaries and handoff4344Do not author the surrounding OWS workflow; use `author-flowglad-ows`. Do not weaken the verifier or mutate a remote Skill without explicit intent.4546Return the complete package, any legacy entrypoint declarations, exact local checks, lifecycle/Skill/revision identities when submitted, final verification diagnostics, and OWS publication status as a separate state.