@yaawn/workflow 0.0.0-stage → 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.
Files changed (101) hide show
  1. package/README.md +172 -2
  2. package/agents/instructions/output-styles/yaawn-eli5.instructions.md +45 -0
  3. package/agents/instructions/yaawn-accessibility.css.instructions.md +58 -0
  4. package/agents/instructions/yaawn-accessibility.html.instructions.md +90 -0
  5. package/agents/instructions/yaawn-accessibility.javascript.instructions.md +50 -0
  6. package/agents/instructions/yaawn-clean-code.typescript.instructions.md +74 -0
  7. package/agents/instructions/yaawn-function-coupling.typescript.instructions.md +100 -0
  8. package/agents/instructions/yaawn-html-css-js.html.instructions.md +32 -0
  9. package/agents/instructions/yaawn-open-source-first.instructions.md +38 -0
  10. package/agents/instructions/yaawn-personas.instructions.md +18 -0
  11. package/agents/instructions/yaawn-semantic-html.html.instructions.md +40 -0
  12. package/agents/instructions/yaawn-vanilla-css.css.instructions.md +50 -0
  13. package/agents/output-styles/yaawn-eli5.instructions.md +45 -0
  14. package/agents/personas/yaawn-developer.md +16 -0
  15. package/agents/personas/yaawn-product-owner.md +18 -0
  16. package/agents/personas/yaawn-reviewer.md +16 -0
  17. package/agents/skills/yaawn-clean-code/SKILL.md +61 -0
  18. package/agents/skills/yaawn-clean-code/references/classes.md +114 -0
  19. package/agents/skills/yaawn-clean-code/references/comments.md +164 -0
  20. package/agents/skills/yaawn-clean-code/references/error-handling.md +151 -0
  21. package/agents/skills/yaawn-clean-code/references/formatting.md +146 -0
  22. package/agents/skills/yaawn-clean-code/references/functions.md +261 -0
  23. package/agents/skills/yaawn-clean-code/references/meaningful-names.md +234 -0
  24. package/agents/skills/yaawn-clean-code/references/objects-and-data-structures.md +130 -0
  25. package/agents/skills/yaawn-clean-code/references/principles.md +76 -0
  26. package/agents/skills/yaawn-clean-code/references/simple-design-and-code-smells.md +130 -0
  27. package/agents/skills/yaawn-clean-code/references/unit-tests.md +114 -0
  28. package/agents/skills/yaawn-create-plan/SKILL.md +228 -0
  29. package/agents/skills/yaawn-grill-bug-report/SKILL.md +31 -0
  30. package/agents/skills/yaawn-grill-bug-report/references/bug-report-checklist.md +27 -0
  31. package/agents/skills/yaawn-grill-design/SKILL.md +68 -0
  32. package/agents/skills/yaawn-grill-design/references/design-checklist.md +36 -0
  33. package/agents/skills/yaawn-grill-other/SKILL.md +31 -0
  34. package/agents/skills/yaawn-grill-other/references/other-checklist.md +19 -0
  35. package/agents/skills/yaawn-grill-refactor/SKILL.md +31 -0
  36. package/agents/skills/yaawn-grill-refactor/references/refactor-checklist.md +26 -0
  37. package/agents/skills/yaawn-grill-spike/SKILL.md +31 -0
  38. package/agents/skills/yaawn-grill-spike/references/spike-checklist.md +25 -0
  39. package/agents/skills/yaawn-grill-story/SKILL.md +34 -0
  40. package/agents/skills/yaawn-grill-story/references/concept-challenge.md +67 -0
  41. package/agents/skills/yaawn-grill-story/references/story-checklist.md +43 -0
  42. package/agents/skills/yaawn-implement-plan/SKILL.md +196 -0
  43. package/agents/skills/yaawn-implement-plan/assets/fix-prompt.md +66 -0
  44. package/agents/skills/yaawn-implement-plan/assets/review-prompt.md +89 -0
  45. package/agents/skills/yaawn-implement-plan/assets/session-prompt.md +80 -0
  46. package/agents/skills/yaawn-implement-plan/scripts/agent.ts +218 -0
  47. package/agents/skills/yaawn-implement-plan/scripts/caffeinate.ts +56 -0
  48. package/agents/skills/yaawn-implement-plan/scripts/groups.ts +233 -0
  49. package/agents/skills/yaawn-implement-plan/scripts/overnight.ts +772 -0
  50. package/agents/skills/yaawn-implement-plan/scripts/parallel.ts +1176 -0
  51. package/agents/skills/yaawn-implement-plan/scripts/processes.ts +53 -0
  52. package/agents/skills/yaawn-implement-plan/scripts/stages.ts +65 -0
  53. package/agents/skills/yaawn-implement-plan/scripts/targets.ts +381 -0
  54. package/agents/skills/yaawn-implement-plan/scripts/worktrees.ts +431 -0
  55. package/agents/skills/yaawn-owasp-security/SKILL.md +106 -0
  56. package/agents/skills/yaawn-owasp-security/references/a01-broken-access-control.md +58 -0
  57. package/agents/skills/yaawn-owasp-security/references/a02-security-misconfiguration.md +56 -0
  58. package/agents/skills/yaawn-owasp-security/references/a03-software-supply-chain-failures.md +56 -0
  59. package/agents/skills/yaawn-owasp-security/references/a04-cryptographic-failures.md +67 -0
  60. package/agents/skills/yaawn-owasp-security/references/a05-injection.md +53 -0
  61. package/agents/skills/yaawn-owasp-security/references/a06-insecure-design.md +48 -0
  62. package/agents/skills/yaawn-owasp-security/references/a07-authentication-failures.md +68 -0
  63. package/agents/skills/yaawn-owasp-security/references/a08-software-data-integrity-failures.md +45 -0
  64. package/agents/skills/yaawn-owasp-security/references/a09-security-logging-alerting-failures.md +59 -0
  65. package/agents/skills/yaawn-owasp-security/references/a10-mishandling-exceptional-conditions.md +63 -0
  66. package/agents/skills/yaawn-prepare-plan/SKILL.md +110 -0
  67. package/agents/skills/yaawn-save-plan/SKILL.md +65 -0
  68. package/agents/skills/yaawn-save-plan/scripts/plan-body.ts +331 -0
  69. package/agents/skills/yaawn-save-plan/scripts/save-plan.ts +443 -0
  70. package/agents/skills/yaawn-split-story/SKILL.md +189 -0
  71. package/agents/skills/yaawn-split-story/references/spider.md +64 -0
  72. package/agents/skills/yaawn-split-story/scripts/create-issue.ts +162 -0
  73. package/agents/skills/yaawn-verify-executed-plan/SKILL.md +154 -0
  74. package/agents/skills/yaawn-verify-executed-plan/scripts/overnight.ts +362 -0
  75. package/agents/skills/yaawn-verify-executed-plan/scripts/pull-request.ts +131 -0
  76. package/agents/skills/yaawn-write-bug-report/SKILL.md +87 -0
  77. package/agents/skills/yaawn-write-other/SKILL.md +90 -0
  78. package/agents/skills/yaawn-write-refactor/SKILL.md +94 -0
  79. package/agents/skills/yaawn-write-spike/SKILL.md +94 -0
  80. package/agents/skills/yaawn-write-user-story/SKILL.md +187 -0
  81. package/agents/skills/yaawn-write-user-story/references/acceptance-criteria.md +186 -0
  82. package/agents/skills/yaawn-write-user-story/references/five-types-of-value.md +82 -0
  83. package/agents/skills/yaawn-write-user-story/references/user-story-fundamentals.md +75 -0
  84. package/agents/yaawn-glossary.md +146 -0
  85. package/agents/yaawn-grilling.md +75 -0
  86. package/agents/yaawn-worktrees.md +69 -0
  87. package/config/install-tasks.json +35 -0
  88. package/config/settings.json +23 -0
  89. package/config/wizard.json +128 -0
  90. package/github/ISSUE_TEMPLATE/yaawn-bug-report.md +59 -0
  91. package/github/ISSUE_TEMPLATE/yaawn-other.md +38 -0
  92. package/github/ISSUE_TEMPLATE/yaawn-refactor.md +38 -0
  93. package/github/ISSUE_TEMPLATE/yaawn-spike.md +16 -0
  94. package/github/ISSUE_TEMPLATE/yaawn-story.md +56 -0
  95. package/package.json +33 -4
  96. package/scripts/install.js +73 -0
  97. package/yaawn/gitignore +1 -0
  98. package/yaawn/yaawn-definition-of-done.md +5 -0
  99. package/yaawn/yaawn-project-glossary.md +7 -0
  100. package/yaawn/yaawn-user-roles.md +3 -0
  101. package/yaawn/yaawn-verification-commands.md +7 -0
@@ -0,0 +1,38 @@
1
+ ---
2
+ about: Work that matches none of the four types.
3
+ assignees: ""
4
+ labels: ["Yaawn: Other", "Yaawn: To Be Refined"]
5
+ name: Yaawn Other
6
+ projects: []
7
+ title: ""
8
+ ---
9
+
10
+ ## Goal
11
+
12
+ ## Implementation Plan
13
+
14
+ <!-- How? Talk about this during planning part 3 or during work. -->
15
+
16
+ ### Human Readable
17
+
18
+ ### Open Questions
19
+
20
+ | # | Questions | Owner | Answer |
21
+ | --- | --------- | ----- | ------ |
22
+ | | | | |
23
+
24
+ ### Design Decisions
25
+
26
+ <!-- Document decisions here that were made during planning or a grilling session. -->
27
+
28
+ | # | Decision | Choice | Rationale |
29
+ | --- | -------- | ------ | --------- |
30
+ | | | | |
31
+
32
+ ### Files to Change
33
+
34
+ <!-- Bullet list of repo-relative paths of every file the implementation will change. -->
35
+
36
+ ### LLM Plan
37
+
38
+ <!-- The plan is written here by /yaawn-save-plan. The Definition of Done lives in `.yaawn/yaawn-definition-of-done.md`. -->
@@ -0,0 +1,38 @@
1
+ ---
2
+ about: Changes that users do not see.
3
+ assignees: ""
4
+ labels: ["Yaawn: Refactor", "Yaawn: To Be Refined"]
5
+ name: Yaawn Refactor
6
+ projects: []
7
+ title: ""
8
+ ---
9
+
10
+ ## Goal
11
+
12
+ ## Implementation Plan
13
+
14
+ <!-- How? Talk about this during planning part 3 or during work. -->
15
+
16
+ ### Human Readable
17
+
18
+ ### Open Questions
19
+
20
+ | # | Questions | Owner | Answer |
21
+ | --- | --------- | ----- | ------ |
22
+ | | | | |
23
+
24
+ ### Design Decisions
25
+
26
+ <!-- Document decisions here that were made during planning or a grilling session. -->
27
+
28
+ | # | Decision | Choice | Rationale |
29
+ | --- | -------- | ------ | --------- |
30
+ | | | | |
31
+
32
+ ### Files to Change
33
+
34
+ <!-- Bullet list of repo-relative paths of every file the implementation will change. -->
35
+
36
+ ### LLM Plan
37
+
38
+ <!-- The plan is written here by /yaawn-save-plan. The Definition of Done lives in `.yaawn/yaawn-definition-of-done.md`. -->
@@ -0,0 +1,16 @@
1
+ ---
2
+ about: Do some limited research.
3
+ assignees: ""
4
+ labels: ["Yaawn: Spike", "Yaawn: To Be Refined"]
5
+ name: Yawn Spike
6
+ projects: []
7
+ title: ""
8
+ ---
9
+
10
+ <!-- What question should be answered by the spike? -->
11
+
12
+ ## Question
13
+
14
+ <!-- Please document your answer for others -->
15
+
16
+ ## Answer
@@ -0,0 +1,56 @@
1
+ ---
2
+ about: Stories introduce new features.
3
+ assignees: ""
4
+ labels: ["Yaawn: Story", "Yaawn: To Be Refined"]
5
+ name: Yaawn Story
6
+ projects: []
7
+ title: ""
8
+ ---
9
+
10
+ <!-- Who and Why. Talk about this during Refinement. -->
11
+
12
+ As a ROLE, I want to GOAL, so that BENEFIT.
13
+
14
+ <!--
15
+ Behavioral only. Written in third person about the user. No implementation details.
16
+ Each criterion must be testable by a non-developer. Describe what the user
17
+ experiences, not how it is built.
18
+ -->
19
+
20
+ ## Acceptance Criteria
21
+
22
+ - [ ] **Given** SITUATION/ROLE/OTHER
23
+ - [ ] **When** ACTION
24
+ - [ ] **then** REACTION
25
+ - [ ] **When** ACTION
26
+ - [ ] **then** REACTION
27
+
28
+ ## Screenshots, Mockups
29
+
30
+ ## Implementation Plan
31
+
32
+ <!-- How? Talk about this during planning part 3 or during work. -->
33
+
34
+ ### Human Readable
35
+
36
+ ### Open Questions
37
+
38
+ | # | Questions | Owner | Answer |
39
+ | --- | --------- | ----- | ------ |
40
+ | | | | |
41
+
42
+ ### Design Decisions
43
+
44
+ <!-- Document decisions here that were made during planning or a grilling session. -->
45
+
46
+ | # | Decision | Choice | Rationale |
47
+ | --- | -------- | ------ | --------- |
48
+ | | | | |
49
+
50
+ ### Files to Change
51
+
52
+ <!-- Bullet list of repo-relative paths of every file the implementation will change. -->
53
+
54
+ ### LLM Plan
55
+
56
+ <!-- The plan is written here by /yaawn-save-plan. The Definition of Done lives in `.yaawn/yaawn-definition-of-done.md`. -->
package/package.json CHANGED
@@ -1,6 +1,35 @@
1
1
  {
2
2
  "name": "@yaawn/workflow",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.3.1",
4
+ "description": "Installs .agents/ skill files (skills, instructions, output-styles) into your project via `npx @yaawn/workflow`.",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/markusfalk/yaawn.git",
9
+ "directory": "packages/workflow"
10
+ },
11
+ "publishConfig": {
12
+ "access": "public"
13
+ },
14
+ "bin": {
15
+ "workflow": "scripts/install.js"
16
+ },
17
+ "scripts": {
18
+ "release:dry-run": "node release/release-installer.mjs --dry-run"
19
+ },
20
+ "files": [
21
+ "scripts/",
22
+ "config/",
23
+ "agents/",
24
+ "!agents/**/*.test.ts",
25
+ "yaawn/",
26
+ "github/"
27
+ ],
28
+ "optionalDependencies": {
29
+ "@yaawn/workflow-darwin-arm64": "0.3.1",
30
+ "@yaawn/workflow-darwin-x64": "0.3.1",
31
+ "@yaawn/workflow-linux-x64": "0.3.1",
32
+ "@yaawn/workflow-linux-arm64": "0.3.1",
33
+ "@yaawn/workflow-win32-x64": "0.3.1"
34
+ }
35
+ }
@@ -0,0 +1,73 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+
4
+ /**
5
+ * Launcher for @yaawn/workflow (`npx @yaawn/workflow`).
6
+ *
7
+ * The installer itself is a Go binary shipped in a per-platform optional
8
+ * dependency (`<package name>-<platform>`, e.g. `@yaawn/workflow-<platform>`).
9
+ * The package name is read from this package's package.json, so a rename only
10
+ * touches package.json. This shim finds the binary
11
+ * for the current platform and runs it with the package root, so the binary
12
+ * can read the bundled config and payload.
13
+ */
14
+
15
+ const path = require("path");
16
+ const { spawnSync } = require("child_process");
17
+ const { name: packageName } = require("../package.json");
18
+
19
+ const BINARY_NAME = "workflow";
20
+
21
+ const PLATFORM_KEYS = {
22
+ "darwin/arm64": "darwin-arm64",
23
+ "darwin/x64": "darwin-x64",
24
+ "linux/x64": "linux-x64",
25
+ "linux/arm64": "linux-arm64",
26
+ "win32/x64": "win32-x64",
27
+ };
28
+
29
+ const currentPlatform = `${process.platform}/${process.arch}`;
30
+
31
+ function fail(message) {
32
+ process.stderr.write(`${BINARY_NAME}: ${message}\n`);
33
+ process.exit(1);
34
+ }
35
+
36
+ function resolveBinary() {
37
+ const platformKey = PLATFORM_KEYS[currentPlatform];
38
+ if (!platformKey) {
39
+ fail(
40
+ `unsupported platform ${currentPlatform} — supported: ${Object.keys(PLATFORM_KEYS).join(", ")}`,
41
+ );
42
+ }
43
+ if (typeof packageName !== "string" || packageName === "") {
44
+ fail("package.json has no package name — reinstall the package");
45
+ }
46
+ const platformPackage = `${packageName}-${platformKey}`;
47
+ try {
48
+ const manifest = require.resolve(`${platformPackage}/package.json`);
49
+ const fileName =
50
+ process.platform === "win32" ? `${BINARY_NAME}.exe` : BINARY_NAME;
51
+ return path.join(path.dirname(manifest), "bin", fileName);
52
+ } catch {
53
+ fail(
54
+ `installer binary package ${platformPackage} is not installed — it may be missing from the registry or skipped by --no-optional`,
55
+ );
56
+ }
57
+ }
58
+
59
+ const binary = resolveBinary();
60
+
61
+ const packageRoot = path.join(__dirname, "..");
62
+ const result = spawnSync(
63
+ binary,
64
+ ["--package-root", packageRoot, ...process.argv.slice(2)],
65
+ {
66
+ stdio: "inherit",
67
+ },
68
+ );
69
+
70
+ if (result.error)
71
+ fail(`could not start the installer (${result.error.message})`);
72
+ if (result.signal) process.kill(process.pid, result.signal);
73
+ process.exit(result.status === null ? 1 : result.status);
@@ -0,0 +1 @@
1
+ yaawn-settings.json
@@ -0,0 +1,5 @@
1
+ # Definition of Done
2
+
3
+ Standard checklist to verify before considering any work complete.
4
+
5
+ - [ ] [Clean Code](https://gpcoder.gitbook.io/clean-code)
@@ -0,0 +1,7 @@
1
+ # Project Glossary
2
+
3
+ The project's own settled terms. Technical grilling (`/yaawn-grill-design`) adds each term here the moment it settles, as `- **Term** — definition`, in alphabetical order — terms and short definitions only, no implementation details.
4
+ - **GitHub project** — a GitHub Projects board. Issue templates name the boards their issues are added to in the frontmatter `projects` field.
5
+ - **Issue template** — a markdown template that pre-fills a new issue from its YAML frontmatter. yaawn ships five `yaawn-*` templates.
6
+ - **Language-tagged instruction** — an instruction file named yaawn-<topic>.<language>.instructions.md whose language tag gates installation on the consumer's selected languages.
7
+ - **Projects field** — the `projects` key of an issue template's frontmatter; a list of GitHub project names.
@@ -0,0 +1,3 @@
1
+ # User Roles
2
+
3
+ The roles your product's users have — the "As a …" of a user story. The story skills (`/yaawn-prepare-plan`, `/yaawn-write-user-story`, `/yaawn-grill-story`, `/yaawn-split-story`) write stories from these roles. One role per bullet, e.g. `- Account Owner`. With no roles listed, stories are written for the Developer.
@@ -0,0 +1,7 @@
1
+ # Verification Commands
2
+
3
+ Commands `/yaawn-verify-executed-plan` runs from the repo root, in this order. The run stops at the first failure, so list the cheap ones first (lint, typecheck, unit tests) and e2e last. One command per bullet, wrapped in backticks:
4
+
5
+ - `npm run typecheck`
6
+ - `npm run lint`
7
+ - `npm test`