Publishing a Prompt
The whole lifecycle is two commands.
axon prompt init eslint-scout
cd eslint-scout
axon prompt publish
There is no build step and no install step. A prompt is text, so what you wrote is what ships.
Scaffold
axon prompt init eslint-scout
That gives you the smallest project in Axon:
eslint-scout/
├── components/
│ └── README.md
├── eslint-scout.vue
├── prompt.config.ts
└── package.json
One prompt, named after the package, and a components/ folder for fragments
it composes.
Name it
The registry only accepts scoped names, and the scope has to be one you own —
your username, or an org you belong to. Set it in package.json:
{
"name": "@cody/eslint-scout",
"version": "0.1.0"
}
The directory stays eslint-scout. npm works the same way: the folder is
thing, the package is @me/thing.
Then describe it in prompt.config.ts — this is the line shown in the registry
listing:
export default definePrompt({
description: "Scouts a codebase and files proposals",
})
Write the prompt
Be specific about the goal, where to look, and what to produce. A prompt that works is usually one that states its constraints as plainly as its task:
<template>
<h1>Scout {{ path }}</h1>
<p>
Read every file under the given path and list the ESLint rules being
violated. Report the file, the line, and the rule name.
</p>
<h2>Rules</h2>
<p>
Do not fix anything. Do not open files outside the path. If the path
has no JavaScript or TypeScript in it, say so and stop.
</p>
</template>
<script setup lang="ts">
defineProps<{ path: string }>()
</script>
Run it locally before you ship it:
axon run ./eslint-scout.vue --path src/
Publish
axon prompt publish
The package is registered under your scope, the source is uploaded, and the
version is live. Published versions are immutable — if the version in
package.json already exists, the patch is bumped automatically and the new
one ships.
Your first publish needs a username set on your account, since that is the namespace you are claiming. The CLI tells you if you haven't got one.
Anyone can install it
axon install @cody/eslint-scout
axon run @cody/eslint-scout:eslint-scout --path src/
Versioning
Bump version in package.json and publish again. Consumers pin ranges the
usual way, so a patch reaches them and a major does not until they ask for it.
Because a prompt is the instruction itself, a version bump is a change in behaviour even when no code changed anywhere. Treat a reworded constraint as a real release — the agent is reading it.