@pugi/cli 1.0.0-alpha.19 → 1.0.0-alpha.191

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.
Files changed (56) hide show
  1. package/models.json +1 -0
  2. package/package.json +19 -6
  3. package/skills/a11y/SKILL.md +19 -0
  4. package/skills/ab-test-analysis/SKILL.md +15 -0
  5. package/skills/ai-sdk/SKILL.md +19 -0
  6. package/skills/api-integration/SKILL.md +19 -0
  7. package/skills/architecture-review/SKILL.md +19 -0
  8. package/skills/brand-voice/SKILL.md +19 -0
  9. package/skills/ci-cd-pipeline/SKILL.md +15 -0
  10. package/skills/code-review/SKILL.md +19 -0
  11. package/skills/competitor-analysis/SKILL.md +19 -0
  12. package/skills/content-design/SKILL.md +27 -0
  13. package/skills/css-tailwind/SKILL.md +31 -0
  14. package/skills/css-tailwind/quirks.md +86 -0
  15. package/skills/db-vector/SKILL.md +19 -0
  16. package/skills/design-radix/SKILL.md +19 -0
  17. package/skills/design-system/SKILL.md +27 -0
  18. package/skills/detecting-data-anomalies/SKILL.md +15 -0
  19. package/skills/docker-deploy/SKILL.md +15 -0
  20. package/skills/edge-case-finder/SKILL.md +19 -0
  21. package/skills/fonts/SKILL.md +19 -0
  22. package/skills/framework-grammy/SKILL.md +19 -0
  23. package/skills/framework-mastra/SKILL.md +19 -0
  24. package/skills/framework-nestjs/SKILL.md +19 -0
  25. package/skills/framework-prisma/SKILL.md +19 -0
  26. package/skills/funnel-optimization/SKILL.md +19 -0
  27. package/skills/icons/SKILL.md +19 -0
  28. package/skills/landing-templates/SKILL.md +19 -0
  29. package/skills/market-research/SKILL.md +19 -0
  30. package/skills/metrics-dashboard/SKILL.md +19 -0
  31. package/skills/monitoring-setup/SKILL.md +15 -0
  32. package/skills/motion/SKILL.md +19 -0
  33. package/skills/nestjs-api/SKILL.md +30 -0
  34. package/skills/nestjs-api/quirks.md +36 -0
  35. package/skills/nextjs-page/SKILL.md +19 -0
  36. package/skills/orchestrating-multi-agent-systems/SKILL.md +19 -0
  37. package/skills/preprocessing-data/SKILL.md +15 -0
  38. package/skills/project-memory-keeper/SKILL.md +19 -0
  39. package/skills/public-apis/SKILL.md +19 -0
  40. package/skills/pugi-patterns/SKILL.md +19 -0
  41. package/skills/react-component/SKILL.md +19 -0
  42. package/skills/sprint-planning/SKILL.md +19 -0
  43. package/skills/stack-selection/SKILL.md +15 -0
  44. package/skills/standup-summary/SKILL.md +15 -0
  45. package/skills/task-decomposition/SKILL.md +19 -0
  46. package/skills/team-routing/SKILL.md +15 -0
  47. package/skills/tech-survey/SKILL.md +15 -0
  48. package/skills/test-plan/SKILL.md +15 -0
  49. package/skills/typescript-refactor/SKILL.md +15 -0
  50. package/skills/ui-components/SKILL.md +26 -0
  51. package/skills/ux-patterns/SKILL.md +27 -0
  52. package/skills/web-platform/SKILL.md +19 -0
  53. package/skills/web-scrape/SKILL.md +19 -0
  54. package/skills/web-search/SKILL.md +15 -0
  55. package/skills/webapp-testing/SKILL.md +29 -0
  56. package/skills/webapp-testing/quirks.md +26 -0
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: market-research
3
+ description: "Runs search over a topic, summarises findings with citations using research methods frameworks."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Market Research
9
+
10
+ Runs search over a topic, summarises findings with citations using research methods frameworks.
11
+
12
+
13
+ ## Grounding
14
+
15
+ This skill retrieves from the Anvil RAG workspace `marketing_frameworks`. Ask grounded questions in that domain before inventing answers.
16
+
17
+ ## Owner
18
+
19
+ Owner persona: `researcher` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: metrics-dashboard
3
+ description: "Designs KPI dashboards — DAU, MRR, retention, funnel cohorts — grounded in dashboard/chart block templates."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Metrics Dashboard
9
+
10
+ Designs KPI dashboards — DAU, MRR, retention, funnel cohorts — grounded in dashboard/chart block templates.
11
+
12
+
13
+ ## Grounding
14
+
15
+ This skill retrieves from the Anvil RAG workspace `landing_templates`. Ask grounded questions in that domain before inventing answers.
16
+
17
+ ## Owner
18
+
19
+ Owner persona: `analyst` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: monitoring-setup
3
+ description: "Wires Prometheus / Grafana / Langfuse instrumentation into a service."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Monitoring Setup
9
+
10
+ Wires Prometheus / Grafana / Langfuse instrumentation into a service.
11
+
12
+
13
+ ## Owner
14
+
15
+ Owner persona: `devops` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: motion
3
+ description: "Motion patterns — springs, transitions, staggering, reduced-motion compliance."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Motion & Animation
9
+
10
+ Motion patterns — springs, transitions, staggering, reduced-motion compliance.
11
+
12
+
13
+ ## Grounding
14
+
15
+ This skill retrieves from the Anvil RAG workspace `motion_assets`. Ask grounded questions in that domain before inventing answers.
16
+
17
+ ## Owner
18
+
19
+ Owner persona: `designer` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: nestjs-api
3
+ description: "Generates idiomatic NestJS modules, controllers, services, DTOs."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # NestJS API Builder
9
+
10
+ Generates idiomatic NestJS modules, controllers, services, DTOs.
11
+
12
+ ## Rules
13
+
14
+ - Every dependency you import must be in package.json before you import it. A test file is code: importing `@nestjs/testing` without adding it fails the build for the whole project, not just the test.
15
+ - Run the project's own build once before reporting done. `tsc` is the cheapest reviewer you have and it reads the tsconfig the customer will ship with, not the one you assumed.
16
+ - Any `@nestjs/*` package you add must carry the SAME major as the `@nestjs/common` already in package.json. Read it; never write a version from memory. A mismatched major makes `npm install` refuse the whole tree with ERESOLVE, and then nothing installs at all — which surfaces as a missing runtime module, not as a version problem.
17
+
18
+
19
+ ## Known failure modes
20
+
21
+ Read `quirks.md` in this directory BEFORE writing code in this domain. It records 3 failures that reached a customer build, each with the symptom, the cause, and the check that tells them apart.
22
+
23
+
24
+ ## Grounding
25
+
26
+ This skill retrieves from the Anvil RAG workspace `framework_nestjs`. Ask grounded questions in that domain before inventing answers.
27
+
28
+ ## Owner
29
+
30
+ Owner persona: `dev` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,36 @@
1
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
2
+
3
+ # NestJS API Builder — known failure modes
4
+
5
+ Each entry below reached a customer build. The symptom is what you will
6
+ actually observe; the build succeeds in every one of these cases.
7
+
8
+ ## strict-property-initialization
9
+
10
+ **Symptom.** The build fails with `TS2564: Property 'x' has no initializer and is not definitely assigned in the constructor` on every DTO field.
11
+
12
+ **Cause.** The NestJS starter enables `strictPropertyInitialization`. A DTO declares fields the framework fills at runtime from the request body, which the compiler cannot see.
13
+
14
+ **Check.** Read `strict` and `strictPropertyInitialization` in tsconfig.json before writing the first DTO.
15
+
16
+ **Fix.** Declare DTO fields with the definite-assignment marker — `image!: string` — or give them a default. Do not disable the compiler flag to make the error go away: it protects the rest of the code.
17
+
18
+ ## test-imports-uninstalled-package
19
+
20
+ **Symptom.** The build fails with `TS2307: Cannot find module '@nestjs/testing'` even though the application code is fine.
21
+
22
+ **Cause.** A spec file was written importing the testing utilities, but the package was never added to devDependencies. `tsc -p tsconfig.json` compiles spec files too, so one unbuildable test fails the whole project.
23
+
24
+ **Check.** Before writing a `.test.ts`/`.spec.ts`, check that every module it imports appears in package.json. `@nestjs/testing` is NOT part of the default starter.
25
+
26
+ **Fix.** Add the package to devDependencies and install it, or do not write the test. A test that cannot compile is worse than no test — it takes the build down with it. Pick the version by the rule in the next entry — a wrong one is worse than the missing package.
27
+
28
+ ## nest-package-version-must-match-the-installed-major
29
+
30
+ **Symptom.** `npm install` ends with `npm error code ERESOLVE` and a "could not resolve dependency" block naming a peer. node_modules is NOT created, so the next command fails on something unrelated-looking — typically `Cannot find module '@nestjs/core'`, which is NOT the problem.
31
+
32
+ **Cause.** A `@nestjs/*` package was added at a version from a different major than the Nest already in the project. Measured on a live customer preview 2026-09-10: `@nestjs/common@10.4.22` was installed and a generated `@nestjs/testing@4.6.6` demanded `@nestjs/common@"^4.*"`, so npm refused the WHOLE tree. `--omit=dev` does not save you — npm resolves everything before omitting, so one bad dev pin blocks the production install too.
33
+
34
+ **Check.** Before adding any `@nestjs/*` package, read the version of `@nestjs/common` (or `@nestjs/core`) already in package.json and use the SAME major. Never write a version from memory. When an install fails, read the INSTALL output — the crash you see is several steps downstream.
35
+
36
+ **Fix.** Match the major — with `@nestjs/common@^10`, write `"@nestjs/testing": "^10"`. If unsure, install without a version (`npm install -D @nestjs/testing`) and let npm pick a compatible one, then confirm the install exited 0.
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: nextjs-page
3
+ description: "Builds Next.js App Router pages with shadcn/ui + Tailwind."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Next.js Page Builder
9
+
10
+ Builds Next.js App Router pages with shadcn/ui + Tailwind.
11
+
12
+
13
+ ## Grounding
14
+
15
+ This skill retrieves from the Anvil RAG workspace `framework_nextjs`. Ask grounded questions in that domain before inventing answers.
16
+
17
+ ## Owner
18
+
19
+ Owner persona: `frontend` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: orchestrating-multi-agent-systems
3
+ description: "Designs and coordinates multi-agent topologies (planner / workers / critics) grounded in the AI SDK cookbook patterns."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Orchestrating Multi Agent Systems
9
+
10
+ Designs and coordinates multi-agent topologies (planner / workers / critics) grounded in the AI SDK cookbook patterns.
11
+
12
+
13
+ ## Grounding
14
+
15
+ This skill retrieves from the Anvil RAG workspace `ai_sdk_cookbook`. Ask grounded questions in that domain before inventing answers.
16
+
17
+ ## Owner
18
+
19
+ Owner persona: `pugi` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: preprocessing-data
3
+ description: "Cleans, transforms, and feature-engineers datasets for analysis or ML."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Preprocessing Data
9
+
10
+ Cleans, transforms, and feature-engineers datasets for analysis or ML.
11
+
12
+
13
+ ## Owner
14
+
15
+ Owner persona: `analyst` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: project-memory-keeper
3
+ description: "Maintains shared project state — name, stack, goals, decisions log — grounded in the Pugi corpus."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Project Memory Keeper
9
+
10
+ Maintains shared project state — name, stack, goals, decisions log — grounded in the Pugi corpus.
11
+
12
+
13
+ ## Grounding
14
+
15
+ This skill retrieves from the Anvil RAG workspace `mira_knowledge`. Ask grounded questions in that domain before inventing answers.
16
+
17
+ ## Owner
18
+
19
+ Owner persona: `pugi` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: public-apis
3
+ description: "Finds and evaluates public/third-party APIs from the daily-ingested catalog (ADR-0041)."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Public APIs Catalog
9
+
10
+ Finds and evaluates public/third-party APIs from the daily-ingested catalog (ADR-0041).
11
+
12
+
13
+ ## Grounding
14
+
15
+ This skill retrieves from the Anvil RAG workspace `public_apis_catalog`. Ask grounded questions in that domain before inventing answers.
16
+
17
+ ## Owner
18
+
19
+ Owner persona: `researcher` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: pugi-patterns
3
+ description: "Retrieves canonical Pugi implementation patterns (module shapes, proxy routes, migrations, RLS) before any build decision."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Pugi Patterns
9
+
10
+ Retrieves canonical Pugi implementation patterns (module shapes, proxy routes, migrations, RLS) before any build decision.
11
+
12
+
13
+ ## Grounding
14
+
15
+ This skill retrieves from the Anvil RAG workspace `pugi_patterns`. Ask grounded questions in that domain before inventing answers.
16
+
17
+ ## Owner
18
+
19
+ Owner persona: `pugi` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: react-component
3
+ description: "Builds composable React + TypeScript components with proper typing."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # React Component Library
9
+
10
+ Builds composable React + TypeScript components with proper typing.
11
+
12
+
13
+ ## Grounding
14
+
15
+ This skill retrieves from the Anvil RAG workspace `ui_registry`. Ask grounded questions in that domain before inventing answers.
16
+
17
+ ## Owner
18
+
19
+ Owner persona: `frontend` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: sprint-planning
3
+ description: "Decomposes goals into sprint backlogs with capacity-aware estimates — grounded in agile/service-design methods."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Sprint Planning
9
+
10
+ Decomposes goals into sprint backlogs with capacity-aware estimates — grounded in agile/service-design methods.
11
+
12
+
13
+ ## Grounding
14
+
15
+ This skill retrieves from the Anvil RAG workspace `marketing_frameworks`. Ask grounded questions in that domain before inventing answers.
16
+
17
+ ## Owner
18
+
19
+ Owner persona: `pm` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: stack-selection
3
+ description: "Helps pick framework / DB / deployment stack based on project constraints."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Tech Stack Selection
9
+
10
+ Helps pick framework / DB / deployment stack based on project constraints.
11
+
12
+
13
+ ## Owner
14
+
15
+ Owner persona: `architect` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: standup-summary
3
+ description: "Daily summary of what each teammate did, blockers, next steps."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Standup Summary
9
+
10
+ Daily summary of what each teammate did, blockers, next steps.
11
+
12
+
13
+ ## Owner
14
+
15
+ Owner persona: `pm` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: task-decomposition
3
+ description: "Breaks vague requests into concrete sub-tasks with dependencies, aligned to how Pugi actually builds."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Task Decomposition
9
+
10
+ Breaks vague requests into concrete sub-tasks with dependencies, aligned to how Pugi actually builds.
11
+
12
+
13
+ ## Grounding
14
+
15
+ This skill retrieves from the Anvil RAG workspace `pugi_patterns`. Ask grounded questions in that domain before inventing answers.
16
+
17
+ ## Owner
18
+
19
+ Owner persona: `pm` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: team-routing
3
+ description: "Routes incoming requests to the right teammate by role / expertise."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Team Routing
9
+
10
+ Routes incoming requests to the right teammate by role / expertise.
11
+
12
+
13
+ ## Owner
14
+
15
+ Owner persona: `pugi` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: tech-survey
3
+ description: "Compares 3-5 technical options against project criteria, recommends."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Tech Survey
9
+
10
+ Compares 3-5 technical options against project criteria, recommends.
11
+
12
+
13
+ ## Owner
14
+
15
+ Owner persona: `researcher` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: test-plan
3
+ description: "Drafts test plans covering happy path, edge cases, regression scope."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Test Plan Author
9
+
10
+ Drafts test plans covering happy path, edge cases, regression scope.
11
+
12
+
13
+ ## Owner
14
+
15
+ Owner persona: `pm` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: typescript-refactor
3
+ description: "Refactors TS code for readability, type-safety, and conventions."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # TypeScript Refactor
9
+
10
+ Refactors TS code for readability, type-safety, and conventions.
11
+
12
+
13
+ ## Owner
14
+
15
+ Owner persona: `dev` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: ui-components
3
+ description: "shadcn/ui v4 registry knowledge — component anatomy, variants, composition."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # UI Components
9
+
10
+ shadcn/ui v4 registry knowledge — component anatomy, variants, composition.
11
+
12
+ ## Rules
13
+
14
+ - A card is for an object the person can SELECT, COMPARE or OPEN. Anything else — a heading with text under it, a stat, a paragraph — is not a card. A page of cards is a page of grey boxes and the eye cannot find the one thing that matters.
15
+ - Before shipping a screen, count its containers and delete half. If removing a border changes nothing but the border, remove it.
16
+ - Reuse the component the project already has before writing markup. Two definitions of the same control on one screen is how a design system stops being one.
17
+ - Every interactive element needs hover, focus-visible and disabled. A control that only reacts to hover does not exist on a phone.
18
+
19
+
20
+ ## Grounding
21
+
22
+ This skill retrieves from the Anvil RAG workspace `ui_registry`. Ask grounded questions in that domain before inventing answers.
23
+
24
+ ## Owner
25
+
26
+ Owner persona: `designer` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: ux-patterns
3
+ description: "Service-design and research methods — journey maps, usability tests, heuristics."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # UX Patterns
9
+
10
+ Service-design and research methods — journey maps, usability tests, heuristics.
11
+
12
+ ## Rules
13
+
14
+ - Every action has four states: loading, empty, error, success. Ship all four or the action is unfinished. A pressed button that answers with silence reads as broken.
15
+ - Loading is a skeleton shaped like the content that is coming, not a spinner in the middle of nothing.
16
+ - Success is visible and says what happened. Silence after a successful action is indistinguishable from failure.
17
+ - After each state, the next step must be obvious. An error with no way forward leaves the person stuck on your screen.
18
+ - Do not make the reader think. If a screen needs instructions, the screen is the problem.
19
+
20
+
21
+ ## Grounding
22
+
23
+ This skill retrieves from the Anvil RAG workspace `marketing_frameworks`. Ask grounded questions in that domain before inventing answers.
24
+
25
+ ## Owner
26
+
27
+ Owner persona: `designer` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: web-platform
3
+ description: "MDN-grounded web platform knowledge — CSS, layout, web APIs, HTTP semantics."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Web Platform (MDN)
9
+
10
+ MDN-grounded web platform knowledge — CSS, layout, web APIs, HTTP semantics.
11
+
12
+
13
+ ## Grounding
14
+
15
+ This skill retrieves from the Anvil RAG workspace `web_platform`. Ask grounded questions in that domain before inventing answers.
16
+
17
+ ## Owner
18
+
19
+ Owner persona: `frontend` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: web-scrape
3
+ description: "Fetches a URL, extracts clean text/markdown for reading or RAG ingestion."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Web Scrape
9
+
10
+ Fetches a URL, extracts clean text/markdown for reading or RAG ingestion.
11
+
12
+
13
+ ## Grounding
14
+
15
+ This skill retrieves from the Anvil RAG workspace `web_platform`. Ask grounded questions in that domain before inventing answers.
16
+
17
+ ## Owner
18
+
19
+ Owner persona: `researcher` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: web-search
3
+ description: "Searches the web and returns ranked, cited results."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Web Search
9
+
10
+ Searches the web and returns ranked, cited results.
11
+
12
+
13
+ ## Owner
14
+
15
+ Owner persona: `researcher` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: webapp-testing
3
+ description: "Authors and runs Playwright end-to-end tests against a running web application."
4
+ ---
5
+
6
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
7
+
8
+ # Webapp Testing
9
+
10
+ Authors and runs Playwright end-to-end tests against a running web application.
11
+
12
+ ## Rules
13
+
14
+ - The platform refuses to deliver an application whose `package.json` has no `test` script, and refuses one whose tests fail. Treat both as part of the definition of done, not as a final formality.
15
+ - Test what the customer will do — open the page, click the main action, read the result. A suite that only asserts a module imports proves the bundler works, not the product.
16
+
17
+
18
+ ## Known failure modes
19
+
20
+ Read `quirks.md` in this directory BEFORE writing code in this domain. It records 2 failures that reached a customer build, each with the symptom, the cause, and the check that tells them apart.
21
+
22
+
23
+ ## Grounding
24
+
25
+ This skill retrieves from the Anvil RAG workspace `web_platform`. Ask grounded questions in that domain before inventing answers.
26
+
27
+ ## Owner
28
+
29
+ Owner persona: `qa` (THE_TEN Agent×Skill×RAG matrix).
@@ -0,0 +1,26 @@
1
+ <!-- Generated by Pugi. Do not hand-edit; regenerate from the persona pack. -->
2
+
3
+ # Webapp Testing — known failure modes
4
+
5
+ Each entry below reached a customer build. The symptom is what you will
6
+ actually observe; the build succeeds in every one of these cases.
7
+
8
+ ## delivery-blocked-by-missing-test-script
9
+
10
+ **Symptom.** Everything looks finished, then the push is refused with `verification failed: package.json scripts.test is required` and no application is delivered.
11
+
12
+ **Cause.** The system-owned acceptance gate runs immediately before the authoritative push and requires a real `test` script. It is deliberately not something the model can supply or skip, so it is discovered at the very end.
13
+
14
+ **Check.** Read `scripts.test` in package.json at the START of the work, not after the build.
15
+
16
+ **Fix.** Define a `test` script that actually runs the suite, and make it pass. A placeholder that exits 0 satisfies the letter of the gate and delivers an untested app — write the tests instead.
17
+
18
+ ## unbuildable-test-fails-the-whole-project
19
+
20
+ **Symptom.** The application code compiles when you check it, but the delivery gate reports `pugi verification: test` and the push is refused.
21
+
22
+ **Cause.** The project's build compiles spec files too. A test importing a package that was never added to package.json, or a type error inside a test, fails the whole compile — the application is fine and still cannot ship.
23
+
24
+ **Check.** Run the project's own build once with the tests in place, before reporting done.
25
+
26
+ **Fix.** Add every package a test imports to devDependencies, or delete the test. A test that cannot compile is worse than no test: it takes the delivery down with it.