@uge/payo 1.4.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +72 -36
- package/dist/index.js +176 -168
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -59,14 +59,15 @@ over Prisma, that handlers live in `src/routes`, that you write Vitest specs
|
|
|
59
59
|
beside the file, or that commits follow Conventional Commits. So you re-explain
|
|
60
60
|
it — in chat after chat — and still get code that ignores half of it.
|
|
61
61
|
|
|
62
|
-
The fix is the guidance files
|
|
63
|
-
|
|
64
|
-
by hand is tedious
|
|
65
|
-
|
|
62
|
+
The fix is the guidance files agents read — an `AGENTS.md` entrypoint plus
|
|
63
|
+
[Agent Skills](https://agentskills.io) under `.agents/skills/`. But writing them
|
|
64
|
+
by hand is tedious and easy to get wrong. Most people never do it, or do it once
|
|
65
|
+
and let it rot.
|
|
66
66
|
|
|
67
|
-
Payo writes them for you in minutes — tailored to your actual stack,
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
Payo writes them for you in minutes — tailored to your actual stack, in one
|
|
68
|
+
universal layout that **every skills-compatible tool reads** (Claude Code, Codex,
|
|
69
|
+
Cursor, Copilot, Gemini, Antigravity, Windsurf, …) — so your assistant follows
|
|
70
|
+
_your_ conventions from the first prompt instead of guessing.
|
|
70
71
|
|
|
71
72
|
### Vibe coding, without the mess
|
|
72
73
|
|
|
@@ -91,7 +92,7 @@ instead of fighting it.
|
|
|
91
92
|
- **Teams enforcing conventions** who need every contributor's assistant to
|
|
92
93
|
follow the same folder structure, naming, testing, and git rules.
|
|
93
94
|
- **Multi-tool users** who switch between Claude, Cursor, and Copilot and want
|
|
94
|
-
the _same_ project guidance
|
|
95
|
+
the _same_ project guidance in one universal layout every tool reads.
|
|
95
96
|
- **Anyone bootstrapping a stack** they haven't wired up before — Payo encodes
|
|
96
97
|
sensible, framework-specific defaults and can scaffold a runnable project.
|
|
97
98
|
|
|
@@ -131,9 +132,10 @@ guidance files straight into your repo.
|
|
|
131
132
|
summary of every answer. Choose **Edit an answer** to change any response — or
|
|
132
133
|
re-open a section you skipped — right from the review; dependent questions are
|
|
133
134
|
re-asked automatically. Pick **Generate** when it looks right.
|
|
134
|
-
5. **Payo generates the guidance.** It writes
|
|
135
|
-
|
|
136
|
-
|
|
135
|
+
5. **Payo generates the guidance.** It writes one universal layout that every
|
|
136
|
+
skills-compatible tool reads (see the table below). With an agent CLI
|
|
137
|
+
installed, skills are generated in parallel by the AI; otherwise solid
|
|
138
|
+
templates are used.
|
|
137
139
|
6. **(Optional) Get a bootstrap prompt.** Payo offers to write a paste-ready
|
|
138
140
|
`bootstrap-prompt.md` you hand to any LLM to scaffold a runnable project that
|
|
139
141
|
honors the guidance it just generated.
|
|
@@ -152,18 +154,28 @@ When detection finds a manifest, you get two quick choices:
|
|
|
152
154
|
|
|
153
155
|
- **Work with the existing project, or start fresh?** Keep the detected answers, or
|
|
154
156
|
ignore them and answer from scratch.
|
|
155
|
-
- **Detect everything, or just the stack?**
|
|
156
|
-
|
|
157
|
-
|
|
157
|
+
- **Detect everything, or just the stack?**
|
|
158
|
+
- **Detect everything** fills in the whole config with no question-by-question
|
|
159
|
+
prompts: stack facts and conventions are taken from what Payo detects, and any
|
|
160
|
+
convention it can't detect is set to a sensible recommended default. You land
|
|
161
|
+
straight on the review screen and edit anything that's off before generating —
|
|
162
|
+
everything means everything, confirmed once at the end.
|
|
163
|
+
- **Just the high-level stack** fills in the stack facts only and interviews you
|
|
164
|
+
for the convention questions (folder structure and the like).
|
|
158
165
|
|
|
159
|
-
How detected answers are applied:
|
|
166
|
+
How detected answers are applied in **Just the high-level stack** mode:
|
|
160
167
|
|
|
161
168
|
- **Stack facts** (language, framework, database, ORM, package manager, test
|
|
162
169
|
runner, linter…) are filled in and **skipped** — they're things a manifest can
|
|
163
170
|
state authoritatively, so there's nothing to ask.
|
|
164
|
-
- **Conventions and preferences** are
|
|
165
|
-
|
|
166
|
-
|
|
171
|
+
- **Conventions and preferences** are left to the interview — a manifest can't
|
|
172
|
+
encode intent, so Payo asks rather than guessing.
|
|
173
|
+
|
|
174
|
+
**Monorepos** are detected too: Payo enumerates workspace members (pnpm / npm /
|
|
175
|
+
yarn / lerna, Cargo, `go.work`, Maven / Gradle), detects each package's stack, and
|
|
176
|
+
uses the real app stack as the primary answers instead of the near-empty root
|
|
177
|
+
manifest. The generated guidance gains a **Workspace Packages** list and monorepo
|
|
178
|
+
conventions.
|
|
167
179
|
|
|
168
180
|
Detection runs deterministically from your files first. When the chosen AI tool's
|
|
169
181
|
CLI is installed, an **optional second pass** uses **your own** assistant to fill
|
|
@@ -174,20 +186,43 @@ deterministic result stands on its own.
|
|
|
174
186
|
|
|
175
187
|
## What gets generated
|
|
176
188
|
|
|
177
|
-
|
|
189
|
+
One universal layout, whichever agent CLI you pick — no per-tool formats:
|
|
190
|
+
|
|
191
|
+
| Path | What it is |
|
|
192
|
+
| ------------------------------- | ------------------------------------------------------------------ |
|
|
193
|
+
| `AGENTS.md` | The entrypoint most tools read natively — your project's base rules |
|
|
194
|
+
| `.agents/skills/<id>/SKILL.md` | One [Agent Skill](https://agentskills.io) per topic, spec frontmatter |
|
|
195
|
+
| `CLAUDE.md` | A one-line `@AGENTS.md` import shim so Claude Code picks it up |
|
|
196
|
+
| `.claude/skills/**` | Symlinks into `.agents/skills/` (dir copy on Windows) for Claude Code |
|
|
197
|
+
| `.windsurf/skills/**` | The same shim for Windsurf |
|
|
198
|
+
|
|
199
|
+
Who reads what, with no extra work:
|
|
200
|
+
|
|
201
|
+
- **Codex, Cursor, Copilot, Gemini CLI, Antigravity, Devin** → `.agents/skills/` and
|
|
202
|
+
`AGENTS.md` natively.
|
|
203
|
+
- **Claude Code** → the `CLAUDE.md` shim plus the `.claude/skills/` symlinks
|
|
204
|
+
(officially supported; it dedupes if it also reads the target directly).
|
|
205
|
+
- **Windsurf** → `AGENTS.md` plus the `.windsurf/skills/` shim.
|
|
206
|
+
|
|
207
|
+
`AGENTS.md` opens its skills index with a directive telling the agent to consult and
|
|
208
|
+
follow the applicable skills before writing code — so the guidance is used, not just
|
|
209
|
+
present.
|
|
210
|
+
|
|
211
|
+
Optionally, Payo adds a **change-audit** skill (`.agents/skills/change-audit/SKILL.md`):
|
|
212
|
+
if you opt in, it asks when to run — before every commit or before pushing — and the
|
|
213
|
+
agent uses it at that point to check your pending change against the relevant project
|
|
214
|
+
skills and flag anything that conflicts.
|
|
178
215
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
| Cursor | `.cursorrules` · `.cursor/rules/**` |
|
|
183
|
-
| GitHub Copilot | `.github/copilot-instructions.md` · `.github/instructions/**` |
|
|
184
|
-
| Codex CLI | `AGENTS.md` |
|
|
185
|
-
| Antigravity (Google) | `AGENTS.md` · `.agents/skills/**` |
|
|
186
|
-
| Windsurf | `.windsurfrules` |
|
|
187
|
-
| Other / generic | `AI_RULES.md` |
|
|
216
|
+
The question Payo asks — _"Which agent CLI should Payo use to generate content?"_ —
|
|
217
|
+
picks only **which installed CLI authors the content**. The output above works with
|
|
218
|
+
every skills-compatible tool regardless of that choice.
|
|
188
219
|
|
|
189
|
-
> Rich AI generation needs
|
|
190
|
-
>
|
|
220
|
+
> Rich AI generation needs an agent CLI on your `PATH`. Without one, Payo writes
|
|
221
|
+
> well-structured template defaults into the same layout instead.
|
|
222
|
+
>
|
|
223
|
+
> Regenerating over an older Payo project? It offers to remove the retired
|
|
224
|
+
> per-tool files (`.cursorrules`, `.windsurfrules`, `.cursor/rules/**`,
|
|
225
|
+
> `.github/instructions/**`, `.github/copilot-instructions.md`, `AI_RULES.md`).
|
|
191
226
|
|
|
192
227
|
## What it asks about
|
|
193
228
|
|
|
@@ -208,6 +243,8 @@ questions to whatever you pick. Dimensions covered:
|
|
|
208
243
|
- **Tooling** — package manager, runtime, formatter, linter
|
|
209
244
|
- **TypeScript** — `tsconfig` strictness, target, module resolution, path aliases
|
|
210
245
|
- **Conventions** — folder structure, coding standards, docs, git workflow
|
|
246
|
+
- **Change audit** _(optional)_ — opt into a skill that checks your pending
|
|
247
|
+
change against the project skills before commit or push
|
|
211
248
|
|
|
212
249
|
## AI vs. template generation
|
|
213
250
|
|
|
@@ -250,13 +287,12 @@ generating what's missing. Finished runs clean the directory up automatically.
|
|
|
250
287
|
|
|
251
288
|
Payo works today, but it's still early. Here's where it's headed:
|
|
252
289
|
|
|
253
|
-
- **Deeper
|
|
254
|
-
|
|
290
|
+
- **Deeper monorepo support.** Payo now enumerates workspace members, detects
|
|
291
|
+
each package's stack, and writes per-package notes into one root config (see
|
|
255
292
|
[Already have a project?](#already-have-a-project-payo-detects-your-stack)).
|
|
256
|
-
Next is
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
signal coverage — is the next step.
|
|
293
|
+
Next is going further: per-package skills and guidance for repos where each
|
|
294
|
+
workspace wants its own conventions, and workspace enumeration for the
|
|
295
|
+
remaining ecosystems (Python, PHP, .NET, Ruby).
|
|
260
296
|
- **Broader stack coverage.** More languages, frameworks, ORMs, databases, and
|
|
261
297
|
AI tools, plus deeper, more opinionated defaults for the ones already
|
|
262
298
|
supported — so the guidance fits more of the ecosystem out of the box.
|