@ranimontagna/agent-toolkit 0.2.3 → 0.3.1
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/CHANGELOG.md +16 -0
- package/README.md +45 -7
- package/dist/bin/agent-toolkit.js +9 -4
- package/dist/bin/agent-toolkit.js.map +1 -1
- package/dist/src/ariadne/args.d.ts +2 -0
- package/dist/src/ariadne/args.js +146 -0
- package/dist/src/ariadne/args.js.map +1 -0
- package/dist/src/ariadne/checks.d.ts +24 -0
- package/dist/src/ariadne/checks.js +74 -0
- package/dist/src/ariadne/checks.js.map +1 -0
- package/dist/src/ariadne/cli.d.ts +38 -0
- package/dist/src/ariadne/cli.js +206 -0
- package/dist/src/ariadne/cli.js.map +1 -0
- package/dist/src/ariadne/doctor.d.ts +16 -0
- package/dist/src/ariadne/doctor.js +207 -0
- package/dist/src/ariadne/doctor.js.map +1 -0
- package/dist/src/ariadne/git.d.ts +58 -0
- package/dist/src/ariadne/git.js +577 -0
- package/dist/src/ariadne/git.js.map +1 -0
- package/dist/src/ariadne/import.d.ts +2 -0
- package/dist/src/ariadne/import.js +93 -0
- package/dist/src/ariadne/import.js.map +1 -0
- package/dist/src/ariadne/init.d.ts +47 -0
- package/dist/src/ariadne/init.js +345 -0
- package/dist/src/ariadne/init.js.map +1 -0
- package/dist/src/ariadne/lock.d.ts +22 -0
- package/dist/src/ariadne/lock.js +478 -0
- package/dist/src/ariadne/lock.js.map +1 -0
- package/dist/src/ariadne/loop.d.ts +26 -0
- package/dist/src/ariadne/loop.js +1316 -0
- package/dist/src/ariadne/loop.js.map +1 -0
- package/dist/src/ariadne/ownership.d.ts +32 -0
- package/dist/src/ariadne/ownership.js +161 -0
- package/dist/src/ariadne/ownership.js.map +1 -0
- package/dist/src/ariadne/process.d.ts +27 -0
- package/dist/src/ariadne/process.js +302 -0
- package/dist/src/ariadne/process.js.map +1 -0
- package/dist/src/ariadne/prompt.d.ts +11 -0
- package/dist/src/ariadne/prompt.js +29 -0
- package/dist/src/ariadne/prompt.js.map +1 -0
- package/dist/src/ariadne/render.d.ts +7 -0
- package/dist/src/ariadne/render.js +72 -0
- package/dist/src/ariadne/render.js.map +1 -0
- package/dist/src/ariadne/result.d.ts +54 -0
- package/dist/src/ariadne/result.js +129 -0
- package/dist/src/ariadne/result.js.map +1 -0
- package/dist/src/ariadne/runtimes/antigravity.d.ts +2 -0
- package/dist/src/ariadne/runtimes/antigravity.js +17 -0
- package/dist/src/ariadne/runtimes/antigravity.js.map +1 -0
- package/dist/src/ariadne/runtimes/claude.d.ts +2 -0
- package/dist/src/ariadne/runtimes/claude.js +17 -0
- package/dist/src/ariadne/runtimes/claude.js.map +1 -0
- package/dist/src/ariadne/runtimes/codex.d.ts +2 -0
- package/dist/src/ariadne/runtimes/codex.js +24 -0
- package/dist/src/ariadne/runtimes/codex.js.map +1 -0
- package/dist/src/ariadne/runtimes/gemini.d.ts +2 -0
- package/dist/src/ariadne/runtimes/gemini.js +18 -0
- package/dist/src/ariadne/runtimes/gemini.js.map +1 -0
- package/dist/src/ariadne/runtimes/index.d.ts +4 -0
- package/dist/src/ariadne/runtimes/index.js +82 -0
- package/dist/src/ariadne/runtimes/index.js.map +1 -0
- package/dist/src/ariadne/runtimes/opencode.d.ts +2 -0
- package/dist/src/ariadne/runtimes/opencode.js +19 -0
- package/dist/src/ariadne/runtimes/opencode.js.map +1 -0
- package/dist/src/ariadne/runtimes/shared.d.ts +24 -0
- package/dist/src/ariadne/runtimes/shared.js +141 -0
- package/dist/src/ariadne/runtimes/shared.js.map +1 -0
- package/dist/src/ariadne/runtimes/types.d.ts +56 -0
- package/dist/src/ariadne/runtimes/types.js +3 -0
- package/dist/src/ariadne/runtimes/types.js.map +1 -0
- package/dist/src/ariadne/schema.d.ts +11 -0
- package/dist/src/ariadne/schema.js +214 -0
- package/dist/src/ariadne/schema.js.map +1 -0
- package/dist/src/ariadne/status.d.ts +72 -0
- package/dist/src/ariadne/status.js +280 -0
- package/dist/src/ariadne/status.js.map +1 -0
- package/dist/src/ariadne/store.d.ts +99 -0
- package/dist/src/ariadne/store.js +738 -0
- package/dist/src/ariadne/store.js.map +1 -0
- package/dist/src/ariadne/types.d.ts +128 -0
- package/dist/src/ariadne/types.js +5 -0
- package/dist/src/ariadne/types.js.map +1 -0
- package/dist/src/ariadne/usage.d.ts +1 -0
- package/dist/src/ariadne/usage.js +8 -0
- package/dist/src/ariadne/usage.js.map +1 -0
- package/dist/src/build-skills-index.d.ts +3 -0
- package/dist/src/build-skills-index.js +50 -0
- package/dist/src/build-skills-index.js.map +1 -0
- package/dist/src/cli.d.ts +5 -0
- package/dist/src/cli.js +14 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/context.js.map +1 -1
- package/dist/src/lock-update.js.map +1 -1
- package/dist/src/main.js.map +1 -1
- package/dist/src/release.js.map +1 -1
- package/dist/src/skill-targets.js.map +1 -1
- package/dist/src/skills-audit.d.ts +6 -0
- package/dist/src/skills-audit.js +68 -2
- package/dist/src/skills-audit.js.map +1 -1
- package/dist/src/skills-index.d.ts +12 -0
- package/dist/src/skills-index.js +50 -0
- package/dist/src/skills-index.js.map +1 -0
- package/dist/src/stage-agent-skills.d.ts +1 -0
- package/dist/src/stage-agent-skills.js +32 -0
- package/dist/src/stage-agent-skills.js.map +1 -0
- package/dist/src/system.js.map +1 -1
- package/dist/src/tool-lock.d.ts +20 -0
- package/dist/src/tool-lock.js +26 -0
- package/dist/src/tool-lock.js.map +1 -1
- package/dist/src/usage.js +1 -0
- package/dist/src/usage.js.map +1 -1
- package/package.json +15 -8
- package/skills/frontend/accessibility/BRIEF.md +11 -0
- package/skills/frontend/accessibility/NOTICE.md +3 -0
- package/skills/frontend/accessibility/SKILL.md +10 -0
- package/skills/frontend/astro/astro-react-landing/BRIEF.md +10 -0
- package/skills/frontend/astro/astro-react-landing/SKILL.md +42 -0
- package/skills/frontend/design/frontend-design/BRIEF.md +10 -0
- package/skills/frontend/design/frontend-design/SKILL.md +38 -0
- package/skills/frontend/design/ui-ux-pro-max/BRIEF.md +11 -0
- package/skills/frontend/design/ui-ux-pro-max/NOTICE.md +3 -0
- package/skills/frontend/design/ui-ux-pro-max/SKILL.md +15 -0
- package/skills/frontend/gsap/gsap-motion/BRIEF.md +10 -0
- package/skills/frontend/gsap/gsap-motion/SKILL.md +36 -0
- package/skills/frontend/seo/seo-page/BRIEF.md +10 -0
- package/skills/frontend/seo/seo-page/SKILL.md +34 -0
- package/skills/quality/biome-formatting/BRIEF.md +9 -0
- package/skills/quality/biome-formatting/SKILL.md +27 -0
- package/skills/research/instagram-public-research/BRIEF.md +10 -0
- package/skills/research/instagram-public-research/SKILL.md +41 -0
- package/skills/research/research-data-collection/BRIEF.md +11 -0
- package/skills/research/research-data-collection/SKILL.md +40 -0
- package/skills/workflow/ariadne/NOTICE.md +11 -0
- package/skills/workflow/ariadne/SKILL.md +96 -0
- package/skills/workflow/ariadne-prd/NOTICE.md +11 -0
- package/skills/workflow/ariadne-prd/SKILL.md +69 -0
- package/skills.index.json +299 -0
- package/tools.lock.json +40 -21
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: instagram-public-research
|
|
3
|
+
description: Collect Instagram-related public and first-party data safely for research packs, without posting, messaging, deleting, or bypassing access controls.
|
|
4
|
+
risk: caution
|
|
5
|
+
source: adapted-from-community
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Instagram Public Research
|
|
9
|
+
|
|
10
|
+
Use this research-only skill for market, audience, competitor, campaign, creator,
|
|
11
|
+
or content context. Never publish, message, delete, hide, automate engagement,
|
|
12
|
+
scrape authenticated-only content, or bypass login, paywalls, rate limits, bot
|
|
13
|
+
protections, or platform controls.
|
|
14
|
+
|
|
15
|
+
## Allowed Sources And Order
|
|
16
|
+
|
|
17
|
+
1. Prefer first-party exports or Graph API data when the operator has explicit
|
|
18
|
+
authorization.
|
|
19
|
+
2. Use public Instagram pages only when accessible without login and permitted
|
|
20
|
+
by the terms; collect public linked brand sources as needed.
|
|
21
|
+
3. Record inaccessible/login-gated sources as limitations. Request an export or
|
|
22
|
+
authorized API for private analytics, DMs, demographics, or insights.
|
|
23
|
+
|
|
24
|
+
## Data To Extract
|
|
25
|
+
|
|
26
|
+
- Visible profile basics, public links/category/counts, and visible themes.
|
|
27
|
+
- Content patterns: topics, offer language, hooks, captions, creative formats,
|
|
28
|
+
cadence inferred from dates, and CTAs.
|
|
29
|
+
- Public engagement only when visible; otherwise mark it unavailable.
|
|
30
|
+
- Evidence-backed audience/positioning clues, landing-page inputs, and
|
|
31
|
+
SEO/content entities.
|
|
32
|
+
|
|
33
|
+
## Research Pack Requirements
|
|
34
|
+
|
|
35
|
+
For every source, record URL, access method, collection time, and whether it was
|
|
36
|
+
public, API-authorized, or user-provided. Separate visible facts from inference,
|
|
37
|
+
state unavailable fields and why, use concise summaries rather than raw dumps,
|
|
38
|
+
and never include private personal data without explicit authorization and need.
|
|
39
|
+
|
|
40
|
+
Include `Instagram Findings`: sources, visible facts with citations, content and
|
|
41
|
+
positioning patterns, landing-page implications, and limitations.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Research Data Collection
|
|
2
|
+
|
|
3
|
+
Collect evidence, not raw dumps. Prefer public pages and official APIs; check
|
|
4
|
+
scope, robots, and terms; keep crawls narrow and rate-limited. Never bypass
|
|
5
|
+
paywalls, logins, captchas, access controls, or collect sensitive personal data
|
|
6
|
+
without explicit lawful authorization.
|
|
7
|
+
|
|
8
|
+
Return a compact research pack with objective, cited sources/access time/method,
|
|
9
|
+
facts separated from inference, relevant claims/offers/pricing/proof/audience
|
|
10
|
+
language, confidence, limitations, and next actions. Mark contact channels as
|
|
11
|
+
validated, user-provided, inferred, inaccessible, or pending; never invent them.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: research-data-collection
|
|
3
|
+
description: Collect, normalize, and summarize public web data for downstream agents. Use when researching markets, competitors, products, pricing, positioning, SEO content, source evidence, or customer language using search, HTTP extraction, Firecrawl, Playwright, Scrapling, or other scraping tools.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Research Data Collection
|
|
7
|
+
|
|
8
|
+
Collect useful evidence, not raw dumps. The output should help another agent
|
|
9
|
+
make better decisions.
|
|
10
|
+
|
|
11
|
+
## Safety Policy
|
|
12
|
+
|
|
13
|
+
1. Prefer public pages and official APIs.
|
|
14
|
+
2. Check robots.txt, site terms, and task scope before crawling.
|
|
15
|
+
3. Do not bypass paywalls, login walls, captchas, or access controls.
|
|
16
|
+
4. Do not collect sensitive personal data without a lawful explicit scope and
|
|
17
|
+
repository policy.
|
|
18
|
+
5. Rate-limit requests, keep crawls narrow, record provenance, and separate
|
|
19
|
+
facts from inferences.
|
|
20
|
+
|
|
21
|
+
## Tool Selection
|
|
22
|
+
|
|
23
|
+
- Start with search or a human-curated source list for broad questions.
|
|
24
|
+
- Use public-page extraction for markdown-friendly sources; use HTTP clients for
|
|
25
|
+
static pages/APIs and browser automation only for JS-rendered pages.
|
|
26
|
+
- Restrict crawlers to bounded multi-page extraction.
|
|
27
|
+
- Avoid stealth or anti-bot modes unless the terms permit automation and a human
|
|
28
|
+
explicitly approved the risk.
|
|
29
|
+
|
|
30
|
+
## Output Contract
|
|
31
|
+
|
|
32
|
+
Return a compact research pack with objective/scope; source URL, title, access
|
|
33
|
+
time, method, relevance and confidence; cited facts; relevant competitor claims,
|
|
34
|
+
offers, pricing, proof, objections, and audience language; SEO entities/content
|
|
35
|
+
gaps; artifacts where visual evidence matters; limitations; and next actions.
|
|
36
|
+
|
|
37
|
+
For landing-page research, prioritize audience pains, outcomes, positioning,
|
|
38
|
+
proof, differentiation, official contact channels, search terms, FAQs,
|
|
39
|
+
objections, and visual references. Mark channels as validated, user-provided,
|
|
40
|
+
inferred, inaccessible, or pending; never invent a WhatsApp number.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Attribution
|
|
2
|
+
|
|
3
|
+
This first-party Ariadne adaptation is based on concepts from
|
|
4
|
+
`snarktank/ralph`, reviewed at commit
|
|
5
|
+
`6c53cb0b831ebe8739c6a003e22af14902d8b0b5` under the MIT license.
|
|
6
|
+
|
|
7
|
+
- Adapted upstream path: `skills/ralph/SKILL.md`
|
|
8
|
+
- Reviewed SHA-256: `1de69bb4e0d53a32facbbc8a8732b945e6721ab0955fdefb27136e43fae860be`
|
|
9
|
+
|
|
10
|
+
The instructions are Ariadne-specific and are not a verbatim copy of the
|
|
11
|
+
upstream prompt.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ariadne
|
|
3
|
+
description: Use when initializing, diagnosing, running, recovering, or inspecting an Agent Toolkit Ariadne autonomous coding loop.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Ariadne
|
|
7
|
+
|
|
8
|
+
Ariadne is Agent Toolkit's runtime-neutral autonomous coding loop. The
|
|
9
|
+
orchestrator owns state transitions, quality checks, and commits; the selected
|
|
10
|
+
runtime agent implements one story at a time.
|
|
11
|
+
|
|
12
|
+
## Commands
|
|
13
|
+
|
|
14
|
+
| Command | Purpose |
|
|
15
|
+
| --- | --- |
|
|
16
|
+
| `agent-toolkit ariadne init` | Create or migrate `.ariadne/` state, auto-detect available checks, and configure a runtime when unambiguous. |
|
|
17
|
+
| `agent-toolkit ariadne doctor` | Diagnose Git, schema, lock, runtime, and quality-check readiness without running a story. |
|
|
18
|
+
| `agent-toolkit ariadne run` | Autonomously select and execute stories, verify them, and let Ariadne commit successful work. |
|
|
19
|
+
| `agent-toolkit ariadne status` | Report backlog counts, active story, branch, lock, latest run, and runtime health. |
|
|
20
|
+
|
|
21
|
+
Normal `run` is autonomous and mutates the repository. Use `run --dry-run` for
|
|
22
|
+
non-mutating inspection. Use `--runtime <claude|codex|opencode|gemini|antigravity>`
|
|
23
|
+
to override automatic runtime selection explicitly, `--max-iterations <n>` or
|
|
24
|
+
`--max-runtime <duration>` to bound a run, and `--json` for machine-readable
|
|
25
|
+
output. `run` first honors its explicit runtime, then a healthy configured
|
|
26
|
+
project runtime. An unverified, unavailable, or incompatible configured runtime
|
|
27
|
+
falls through to automatic selection: a single healthy candidate (or a sole
|
|
28
|
+
unverified candidate), a healthy global preference when set, an interactive
|
|
29
|
+
prompt when candidates remain ambiguous, or a non-interactive ambiguity error.
|
|
30
|
+
|
|
31
|
+
During `init`, Ariadne detects package quality checks automatically: it uses a
|
|
32
|
+
`check` script when present, otherwise it collects `lint`, `typecheck`, and
|
|
33
|
+
`test` scripts in that order. Repeated `--check` values replace those detected
|
|
34
|
+
checks. In a non-interactive project with no detected or explicit check, init
|
|
35
|
+
reports an error and requires `--check`.
|
|
36
|
+
|
|
37
|
+
## Safe operation
|
|
38
|
+
|
|
39
|
+
1. Start in the configured Git branch with the user's existing work preserved.
|
|
40
|
+
2. Run `doctor`; fix reported state, runtime, or quality-check errors.
|
|
41
|
+
3. Inspect `status`, then use `run --dry-run` before a first autonomous run.
|
|
42
|
+
4. Run normally only when the user accepts autonomous edits and commits.
|
|
43
|
+
5. Inspect `status` and `.ariadne/runs/<run-id>/` evidence after completion.
|
|
44
|
+
|
|
45
|
+
A runtime agent may edit project files and applicable `AGENTS.md` only for
|
|
46
|
+
genuinely reusable repository guidance. It must not create commits, push, or
|
|
47
|
+
edit `.ariadne/prd.json` or `.ariadne/progress.md`. Ariadne performs the
|
|
48
|
+
successful-story commit after its own acceptance and quality checks. Ariadne
|
|
49
|
+
never pushes and never resets,
|
|
50
|
+
reverts, cleans, checks out over changes, or discards a failed diff.
|
|
51
|
+
|
|
52
|
+
Before staging, Ariadne verifies that its lock, run coordinator, prompts,
|
|
53
|
+
results, and raw process streams are still effectively ignored and absent from
|
|
54
|
+
the tracked or staged index. It stages literal project paths, proves the full
|
|
55
|
+
project delta is represented, and publishes the exact certified tree on the
|
|
56
|
+
pre-runtime certified `HEAD` without running repository hooks. The state root,
|
|
57
|
+
runs root, run directory, lock coordinator, public lock, and operational files
|
|
58
|
+
must retain their captured filesystem identities. Output leaves must remain
|
|
59
|
+
present regular single-link files rather than symlinks or hard links. Ariadne
|
|
60
|
+
rechecks these boundaries immediately before staging and reference publication.
|
|
61
|
+
If a runtime breaks any boundary, Ariadne fails safely and leaves the project
|
|
62
|
+
diff available for deliberate recovery instead of risking an
|
|
63
|
+
operational-artifact commit.
|
|
64
|
+
|
|
65
|
+
## Retry and recovery
|
|
66
|
+
|
|
67
|
+
Failed processes, results, criteria, and checks are recorded in `.ariadne/runs/`
|
|
68
|
+
and `.ariadne/progress.md`. Validated result and check evidence is summarized
|
|
69
|
+
there with secrets and raw process output removed. Ariadne preserves the story
|
|
70
|
+
diff and retries the same `in_progress` story. The default limit is three
|
|
71
|
+
attempts; exhaustion marks the story `blocked` and stops subsequent runs. A
|
|
72
|
+
blocked story continues to own its preserved dirty diff, so `doctor` reports
|
|
73
|
+
that state without misclassifying it as unrelated work. Diagnose with `doctor`
|
|
74
|
+
and the latest run artifacts, repair the underlying problem, then have the
|
|
75
|
+
operator deliberately reset the story to `pending` or `in_progress` before
|
|
76
|
+
resuming.
|
|
77
|
+
|
|
78
|
+
A commit failure is different: Ariadne records it, restores the story to
|
|
79
|
+
`in_progress`, and preserves the worktree diff, original shared-index state,
|
|
80
|
+
and run progress for manual resolution and a deliberate resume. It does not automatically retry or block a
|
|
81
|
+
commit failure, and it never hides failures or discards the preserved diff to
|
|
82
|
+
force progress. If Git publication already succeeded, a later machine-local
|
|
83
|
+
summary-write failure is structural and does not roll the completed story back.
|
|
84
|
+
|
|
85
|
+
If a runtime changes the certified Git branch ref/`HEAD`, edits Ariadne's
|
|
86
|
+
canonical PRD/progress files, or breaks a pinned operational boundary, Ariadne
|
|
87
|
+
persists the repository-root `.ariadne-quarantine.json`. The ignored
|
|
88
|
+
`.ariadne-quarantine.checkpoint.json` persists the last certified ref/`HEAD`
|
|
89
|
+
and exact PRD/progress certificates, while a canonical progress marker makes
|
|
90
|
+
that checkpoint mandatory after execution begins. Later `init` and `run`
|
|
91
|
+
invocations validate the earlier ownership boundary before probing or state
|
|
92
|
+
mutation and fail closed when the checkpoint is missing, malformed, or
|
|
93
|
+
mismatched; `status` and `doctor` remain available. Restore the recorded
|
|
94
|
+
certified ref/`HEAD`, canonical files, and operational layout, inspect the
|
|
95
|
+
preserved evidence, and only then deliberately remove the quarantine marker
|
|
96
|
+
before running again.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Attribution
|
|
2
|
+
|
|
3
|
+
This first-party Ariadne adaptation is based on concepts from
|
|
4
|
+
`snarktank/ralph`, reviewed at commit
|
|
5
|
+
`6c53cb0b831ebe8739c6a003e22af14902d8b0b5` under the MIT license.
|
|
6
|
+
|
|
7
|
+
- Adapted upstream path: `skills/prd/SKILL.md`
|
|
8
|
+
- Reviewed SHA-256: `f5395f014448e1e970cac40b8f814949b7fdbfe0b6db6be275be750895e955ca`
|
|
9
|
+
|
|
10
|
+
The instructions are Ariadne-specific and are not a verbatim copy of the
|
|
11
|
+
upstream prompt.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ariadne-prd
|
|
3
|
+
description: Use when turning product requirements, plans, or an existing backlog into an Ariadne schema version 1 PRD.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Ariadne PRD
|
|
7
|
+
|
|
8
|
+
Create the smallest executable backlog that preserves the user's intent. Ask
|
|
9
|
+
questions only for requirements that remain unresolved after inspecting the
|
|
10
|
+
request and repository; do not re-ask answered questions or invent
|
|
11
|
+
product-critical behavior.
|
|
12
|
+
|
|
13
|
+
## Workflow
|
|
14
|
+
|
|
15
|
+
1. Read applicable repository instructions and inspect existing code, tests,
|
|
16
|
+
`.ariadne/prd.json`, and `.ariadne/config.json` when present.
|
|
17
|
+
2. Resolve only material unknowns with focused questions. Do not write an
|
|
18
|
+
affected story until its material requirement is resolved. If a reversible,
|
|
19
|
+
low-risk assumption is enough, state it and continue.
|
|
20
|
+
3. Split work into independently testable stories that one runtime agent can
|
|
21
|
+
implement and verify in one Ariadne iteration. Separate unrelated outcomes,
|
|
22
|
+
migrations, and cross-subsystem changes.
|
|
23
|
+
4. Write valid JSON directly to `.ariadne/prd.json` at the repository root.
|
|
24
|
+
Preserve completed stories and stable IDs when revising an existing PRD.
|
|
25
|
+
5. Confirm that `.ariadne/config.json` names the real repository quality checks.
|
|
26
|
+
Use `agent-toolkit ariadne init --check <command>` to establish them; never
|
|
27
|
+
add unsupported fields to the PRD schema.
|
|
28
|
+
|
|
29
|
+
## Required schema
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"schemaVersion": 1,
|
|
34
|
+
"project": "project-name",
|
|
35
|
+
"branchName": "current-branch",
|
|
36
|
+
"description": "Measurable project outcome",
|
|
37
|
+
"userStories": [
|
|
38
|
+
{
|
|
39
|
+
"id": "US-001",
|
|
40
|
+
"title": "Small independently verifiable outcome",
|
|
41
|
+
"description": "What changes and why",
|
|
42
|
+
"acceptanceCriteria": [
|
|
43
|
+
"Observable pass/fail behavior",
|
|
44
|
+
"Relevant automated test or quality evidence passes"
|
|
45
|
+
],
|
|
46
|
+
"priority": 1,
|
|
47
|
+
"status": "pending",
|
|
48
|
+
"attempts": 0
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Every story needs non-empty, observable acceptance criteria. Include relevant
|
|
55
|
+
testing, lint, typecheck, build, security, compatibility, or migration evidence
|
|
56
|
+
without naming commands that the repository does not provide. Priorities are
|
|
57
|
+
positive integers; lower values run first. New stories start `pending` with
|
|
58
|
+
zero attempts.
|
|
59
|
+
|
|
60
|
+
## Quality gate
|
|
61
|
+
|
|
62
|
+
- `.ariadne/prd.json` uses only the schema fields above and schema version `1`.
|
|
63
|
+
- IDs are unique, branch and project are correct, and stories fit one iteration.
|
|
64
|
+
- `.ariadne/config.json.qualityChecks` contains at least one real command before
|
|
65
|
+
a normal run.
|
|
66
|
+
- Story acceptance evidence identifies which configured checks prove the
|
|
67
|
+
relevant behavior; repository-wide checks remain in config, not PRD fields.
|
|
68
|
+
- No implementation, status transition, commit, or push is performed while
|
|
69
|
+
authoring the PRD.
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"skills": [
|
|
4
|
+
{
|
|
5
|
+
"name": "api-design",
|
|
6
|
+
"ref": "backend/api/api-design",
|
|
7
|
+
"path": "skills/backend/api/api-design/SKILL.md",
|
|
8
|
+
"brief": null
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"name": "postgres-patterns",
|
|
12
|
+
"ref": "backend/database/postgres-patterns",
|
|
13
|
+
"path": "skills/backend/database/postgres-patterns/SKILL.md",
|
|
14
|
+
"brief": null
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": "fastify-best-practices",
|
|
18
|
+
"ref": "backend/fastify-best-practices",
|
|
19
|
+
"path": "skills/backend/fastify-best-practices/SKILL.md",
|
|
20
|
+
"brief": null
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "golang-patterns",
|
|
24
|
+
"ref": "backend/go/golang-patterns",
|
|
25
|
+
"path": "skills/backend/go/golang-patterns/SKILL.md",
|
|
26
|
+
"brief": null
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"name": "golang-testing",
|
|
30
|
+
"ref": "backend/go/golang-testing",
|
|
31
|
+
"path": "skills/backend/go/golang-testing/SKILL.md",
|
|
32
|
+
"brief": null
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "java-coding-standards",
|
|
36
|
+
"ref": "backend/java/java-coding-standards",
|
|
37
|
+
"path": "skills/backend/java/java-coding-standards/SKILL.md",
|
|
38
|
+
"brief": null
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"name": "java-junit",
|
|
42
|
+
"ref": "backend/java/java-junit",
|
|
43
|
+
"path": "skills/backend/java/java-junit/SKILL.md",
|
|
44
|
+
"brief": null
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"name": "kotlin-patterns",
|
|
48
|
+
"ref": "backend/kotlin/kotlin-patterns",
|
|
49
|
+
"path": "skills/backend/kotlin/kotlin-patterns/SKILL.md",
|
|
50
|
+
"brief": null
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "kotlin-testing",
|
|
54
|
+
"ref": "backend/kotlin/kotlin-testing",
|
|
55
|
+
"path": "skills/backend/kotlin/kotlin-testing/SKILL.md",
|
|
56
|
+
"brief": null
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"name": "python-patterns",
|
|
60
|
+
"ref": "backend/python/python-patterns",
|
|
61
|
+
"path": "skills/backend/python/python-patterns/SKILL.md",
|
|
62
|
+
"brief": null
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "python-testing",
|
|
66
|
+
"ref": "backend/python/python-testing",
|
|
67
|
+
"path": "skills/backend/python/python-testing/SKILL.md",
|
|
68
|
+
"brief": null
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"name": "agent-toolkit-maintainer",
|
|
72
|
+
"ref": "core/agent-toolkit-maintainer",
|
|
73
|
+
"path": "skills/core/agent-toolkit-maintainer/SKILL.md",
|
|
74
|
+
"brief": null
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "onboard-repo",
|
|
78
|
+
"ref": "core/onboard-repo",
|
|
79
|
+
"path": "skills/core/onboard-repo/SKILL.md",
|
|
80
|
+
"brief": null
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"name": "docker-patterns",
|
|
84
|
+
"ref": "devops/docker-patterns",
|
|
85
|
+
"path": "skills/devops/docker-patterns/SKILL.md",
|
|
86
|
+
"brief": null
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"name": "accessibility",
|
|
90
|
+
"ref": "frontend/accessibility",
|
|
91
|
+
"path": "skills/frontend/accessibility/SKILL.md",
|
|
92
|
+
"brief": "skills/frontend/accessibility/BRIEF.md"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"name": "astro-developer",
|
|
96
|
+
"ref": "frontend/astro/astro-developer",
|
|
97
|
+
"path": "skills/frontend/astro/astro-developer/SKILL.md",
|
|
98
|
+
"brief": null
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"name": "astro-react-landing",
|
|
102
|
+
"ref": "frontend/astro/astro-react-landing",
|
|
103
|
+
"path": "skills/frontend/astro/astro-react-landing/SKILL.md",
|
|
104
|
+
"brief": "skills/frontend/astro/astro-react-landing/BRIEF.md"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"name": "design-to-code",
|
|
108
|
+
"ref": "frontend/design/design-to-code",
|
|
109
|
+
"path": "skills/frontend/design/design-to-code/SKILL.md",
|
|
110
|
+
"brief": null
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"name": "frontend-design",
|
|
114
|
+
"ref": "frontend/design/frontend-design",
|
|
115
|
+
"path": "skills/frontend/design/frontend-design/SKILL.md",
|
|
116
|
+
"brief": "skills/frontend/design/frontend-design/BRIEF.md"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"name": "revenue-centric-design",
|
|
120
|
+
"ref": "frontend/design/revenue-centric-design",
|
|
121
|
+
"path": "skills/frontend/design/revenue-centric-design/SKILL.md",
|
|
122
|
+
"brief": null
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"name": "ui-ux-pro-max",
|
|
126
|
+
"ref": "frontend/design/ui-ux-pro-max",
|
|
127
|
+
"path": "skills/frontend/design/ui-ux-pro-max/SKILL.md",
|
|
128
|
+
"brief": "skills/frontend/design/ui-ux-pro-max/BRIEF.md"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"name": "gsap-core",
|
|
132
|
+
"ref": "frontend/gsap/gsap-core",
|
|
133
|
+
"path": "skills/frontend/gsap/gsap-core/SKILL.md",
|
|
134
|
+
"brief": null
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"name": "gsap-frameworks",
|
|
138
|
+
"ref": "frontend/gsap/gsap-frameworks",
|
|
139
|
+
"path": "skills/frontend/gsap/gsap-frameworks/SKILL.md",
|
|
140
|
+
"brief": null
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"name": "gsap-motion",
|
|
144
|
+
"ref": "frontend/gsap/gsap-motion",
|
|
145
|
+
"path": "skills/frontend/gsap/gsap-motion/SKILL.md",
|
|
146
|
+
"brief": "skills/frontend/gsap/gsap-motion/BRIEF.md"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"name": "gsap-performance",
|
|
150
|
+
"ref": "frontend/gsap/gsap-performance",
|
|
151
|
+
"path": "skills/frontend/gsap/gsap-performance/SKILL.md",
|
|
152
|
+
"brief": null
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"name": "gsap-plugins",
|
|
156
|
+
"ref": "frontend/gsap/gsap-plugins",
|
|
157
|
+
"path": "skills/frontend/gsap/gsap-plugins/SKILL.md",
|
|
158
|
+
"brief": null
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"name": "gsap-react",
|
|
162
|
+
"ref": "frontend/gsap/gsap-react",
|
|
163
|
+
"path": "skills/frontend/gsap/gsap-react/SKILL.md",
|
|
164
|
+
"brief": null
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"name": "gsap-scrolltrigger",
|
|
168
|
+
"ref": "frontend/gsap/gsap-scrolltrigger",
|
|
169
|
+
"path": "skills/frontend/gsap/gsap-scrolltrigger/SKILL.md",
|
|
170
|
+
"brief": null
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"name": "gsap-timeline",
|
|
174
|
+
"ref": "frontend/gsap/gsap-timeline",
|
|
175
|
+
"path": "skills/frontend/gsap/gsap-timeline/SKILL.md",
|
|
176
|
+
"brief": null
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"name": "gsap-utils",
|
|
180
|
+
"ref": "frontend/gsap/gsap-utils",
|
|
181
|
+
"path": "skills/frontend/gsap/gsap-utils/SKILL.md",
|
|
182
|
+
"brief": null
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"name": "react-native-expert",
|
|
186
|
+
"ref": "frontend/react-native/react-native-expert",
|
|
187
|
+
"path": "skills/frontend/react-native/react-native-expert/SKILL.md",
|
|
188
|
+
"brief": null
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"name": "react-native-unistyles-v3",
|
|
192
|
+
"ref": "frontend/react-native/react-native-unistyles-v3",
|
|
193
|
+
"path": "skills/frontend/react-native/react-native-unistyles-v3/SKILL.md",
|
|
194
|
+
"brief": null
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"name": "react-patterns",
|
|
198
|
+
"ref": "frontend/react/react-patterns",
|
|
199
|
+
"path": "skills/frontend/react/react-patterns/SKILL.md",
|
|
200
|
+
"brief": null
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"name": "react-performance",
|
|
204
|
+
"ref": "frontend/react/react-performance",
|
|
205
|
+
"path": "skills/frontend/react/react-performance/SKILL.md",
|
|
206
|
+
"brief": null
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"name": "react-testing",
|
|
210
|
+
"ref": "frontend/react/react-testing",
|
|
211
|
+
"path": "skills/frontend/react/react-testing/SKILL.md",
|
|
212
|
+
"brief": null
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"name": "seo-page",
|
|
216
|
+
"ref": "frontend/seo/seo-page",
|
|
217
|
+
"path": "skills/frontend/seo/seo-page/SKILL.md",
|
|
218
|
+
"brief": "skills/frontend/seo/seo-page/BRIEF.md"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"name": "code-reviewer",
|
|
222
|
+
"ref": "general/code-reviewer",
|
|
223
|
+
"path": "skills/general/code-reviewer/SKILL.md",
|
|
224
|
+
"brief": null
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"name": "thermo-nuclear-code-quality-review",
|
|
228
|
+
"ref": "general/thermo-nuclear-code-quality-review",
|
|
229
|
+
"path": "skills/general/thermo-nuclear-code-quality-review/SKILL.md",
|
|
230
|
+
"brief": null
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"name": "biome-formatting",
|
|
234
|
+
"ref": "quality/biome-formatting",
|
|
235
|
+
"path": "skills/quality/biome-formatting/SKILL.md",
|
|
236
|
+
"brief": "skills/quality/biome-formatting/BRIEF.md"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"name": "instagram-public-research",
|
|
240
|
+
"ref": "research/instagram-public-research",
|
|
241
|
+
"path": "skills/research/instagram-public-research/SKILL.md",
|
|
242
|
+
"brief": "skills/research/instagram-public-research/BRIEF.md"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"name": "research-data-collection",
|
|
246
|
+
"ref": "research/research-data-collection",
|
|
247
|
+
"path": "skills/research/research-data-collection/SKILL.md",
|
|
248
|
+
"brief": "skills/research/research-data-collection/BRIEF.md"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"name": "api-security-audit",
|
|
252
|
+
"ref": "security/api-security-audit",
|
|
253
|
+
"path": "skills/security/api-security-audit/SKILL.md",
|
|
254
|
+
"brief": null
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"name": "cicd-security-audit",
|
|
258
|
+
"ref": "security/cicd-security-audit",
|
|
259
|
+
"path": "skills/security/cicd-security-audit/SKILL.md",
|
|
260
|
+
"brief": null
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"name": "cloud-misconfiguration-audit",
|
|
264
|
+
"ref": "security/cloud-misconfiguration-audit",
|
|
265
|
+
"path": "skills/security/cloud-misconfiguration-audit/SKILL.md",
|
|
266
|
+
"brief": null
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"name": "js-secrets-audit",
|
|
270
|
+
"ref": "security/js-secrets-audit",
|
|
271
|
+
"path": "skills/security/js-secrets-audit/SKILL.md",
|
|
272
|
+
"brief": null
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"name": "llm-agent-security-audit",
|
|
276
|
+
"ref": "security/llm-agent-security-audit",
|
|
277
|
+
"path": "skills/security/llm-agent-security-audit/SKILL.md",
|
|
278
|
+
"brief": null
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
"name": "source-leak-audit",
|
|
282
|
+
"ref": "security/source-leak-audit",
|
|
283
|
+
"path": "skills/security/source-leak-audit/SKILL.md",
|
|
284
|
+
"brief": null
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"name": "ariadne",
|
|
288
|
+
"ref": "workflow/ariadne",
|
|
289
|
+
"path": "skills/workflow/ariadne/SKILL.md",
|
|
290
|
+
"brief": null
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"name": "ariadne-prd",
|
|
294
|
+
"ref": "workflow/ariadne-prd",
|
|
295
|
+
"path": "skills/workflow/ariadne-prd/SKILL.md",
|
|
296
|
+
"brief": null
|
|
297
|
+
}
|
|
298
|
+
]
|
|
299
|
+
}
|