@yaawn/workflow 0.0.0-stage → 0.4.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 +172 -2
- package/agents/instructions/output-styles/yaawn-eli5.instructions.md +45 -0
- package/agents/instructions/yaawn-accessibility.css.instructions.md +58 -0
- package/agents/instructions/yaawn-accessibility.html.instructions.md +90 -0
- package/agents/instructions/yaawn-accessibility.javascript.instructions.md +50 -0
- package/agents/instructions/yaawn-clean-code.typescript.instructions.md +74 -0
- package/agents/instructions/yaawn-function-coupling.typescript.instructions.md +100 -0
- package/agents/instructions/yaawn-html-css-js.html.instructions.md +32 -0
- package/agents/instructions/yaawn-open-source-first.instructions.md +38 -0
- package/agents/instructions/yaawn-personas.instructions.md +18 -0
- package/agents/instructions/yaawn-semantic-html.html.instructions.md +40 -0
- package/agents/instructions/yaawn-vanilla-css.css.instructions.md +50 -0
- package/agents/output-styles/yaawn-eli5.instructions.md +45 -0
- package/agents/personas/yaawn-developer.md +16 -0
- package/agents/personas/yaawn-product-owner.md +18 -0
- package/agents/personas/yaawn-reviewer.md +16 -0
- package/agents/skills/yaawn-clean-code/SKILL.md +61 -0
- package/agents/skills/yaawn-clean-code/references/classes.md +114 -0
- package/agents/skills/yaawn-clean-code/references/comments.md +164 -0
- package/agents/skills/yaawn-clean-code/references/error-handling.md +151 -0
- package/agents/skills/yaawn-clean-code/references/formatting.md +146 -0
- package/agents/skills/yaawn-clean-code/references/functions.md +261 -0
- package/agents/skills/yaawn-clean-code/references/meaningful-names.md +234 -0
- package/agents/skills/yaawn-clean-code/references/objects-and-data-structures.md +130 -0
- package/agents/skills/yaawn-clean-code/references/principles.md +76 -0
- package/agents/skills/yaawn-clean-code/references/simple-design-and-code-smells.md +130 -0
- package/agents/skills/yaawn-clean-code/references/unit-tests.md +114 -0
- package/agents/skills/yaawn-create-plan/SKILL.md +234 -0
- package/agents/skills/yaawn-grill-bug-report/SKILL.md +31 -0
- package/agents/skills/yaawn-grill-bug-report/references/bug-report-checklist.md +27 -0
- package/agents/skills/yaawn-grill-design/SKILL.md +68 -0
- package/agents/skills/yaawn-grill-design/references/design-checklist.md +36 -0
- package/agents/skills/yaawn-grill-other/SKILL.md +31 -0
- package/agents/skills/yaawn-grill-other/references/other-checklist.md +19 -0
- package/agents/skills/yaawn-grill-refactor/SKILL.md +31 -0
- package/agents/skills/yaawn-grill-refactor/references/refactor-checklist.md +26 -0
- package/agents/skills/yaawn-grill-spike/SKILL.md +31 -0
- package/agents/skills/yaawn-grill-spike/references/spike-checklist.md +25 -0
- package/agents/skills/yaawn-grill-story/SKILL.md +34 -0
- package/agents/skills/yaawn-grill-story/references/concept-challenge.md +77 -0
- package/agents/skills/yaawn-grill-story/references/story-checklist.md +44 -0
- package/agents/skills/yaawn-implement-plan/SKILL.md +196 -0
- package/agents/skills/yaawn-implement-plan/assets/fix-prompt.md +66 -0
- package/agents/skills/yaawn-implement-plan/assets/review-prompt.md +89 -0
- package/agents/skills/yaawn-implement-plan/assets/session-prompt.md +80 -0
- package/agents/skills/yaawn-implement-plan/scripts/agent.ts +218 -0
- package/agents/skills/yaawn-implement-plan/scripts/caffeinate.ts +56 -0
- package/agents/skills/yaawn-implement-plan/scripts/groups.ts +233 -0
- package/agents/skills/yaawn-implement-plan/scripts/overnight.ts +772 -0
- package/agents/skills/yaawn-implement-plan/scripts/parallel.ts +1176 -0
- package/agents/skills/yaawn-implement-plan/scripts/processes.ts +53 -0
- package/agents/skills/yaawn-implement-plan/scripts/stages.ts +65 -0
- package/agents/skills/yaawn-implement-plan/scripts/targets.ts +381 -0
- package/agents/skills/yaawn-implement-plan/scripts/worktrees.ts +431 -0
- package/agents/skills/yaawn-owasp-security/SKILL.md +106 -0
- package/agents/skills/yaawn-owasp-security/references/a01-broken-access-control.md +58 -0
- package/agents/skills/yaawn-owasp-security/references/a02-security-misconfiguration.md +56 -0
- package/agents/skills/yaawn-owasp-security/references/a03-software-supply-chain-failures.md +56 -0
- package/agents/skills/yaawn-owasp-security/references/a04-cryptographic-failures.md +67 -0
- package/agents/skills/yaawn-owasp-security/references/a05-injection.md +53 -0
- package/agents/skills/yaawn-owasp-security/references/a06-insecure-design.md +48 -0
- package/agents/skills/yaawn-owasp-security/references/a07-authentication-failures.md +68 -0
- package/agents/skills/yaawn-owasp-security/references/a08-software-data-integrity-failures.md +45 -0
- package/agents/skills/yaawn-owasp-security/references/a09-security-logging-alerting-failures.md +59 -0
- package/agents/skills/yaawn-owasp-security/references/a10-mishandling-exceptional-conditions.md +63 -0
- package/agents/skills/yaawn-prepare-plan/SKILL.md +110 -0
- package/agents/skills/yaawn-save-plan/SKILL.md +84 -0
- package/agents/skills/yaawn-save-plan/scripts/plan-body.ts +397 -0
- package/agents/skills/yaawn-save-plan/scripts/save-plan.ts +539 -0
- package/agents/skills/yaawn-split-story/SKILL.md +189 -0
- package/agents/skills/yaawn-split-story/references/spider.md +64 -0
- package/agents/skills/yaawn-split-story/scripts/create-issue.ts +162 -0
- package/agents/skills/yaawn-verify-executed-plan/SKILL.md +154 -0
- package/agents/skills/yaawn-verify-executed-plan/scripts/overnight.ts +362 -0
- package/agents/skills/yaawn-verify-executed-plan/scripts/pull-request.ts +131 -0
- package/agents/skills/yaawn-write-bug-report/SKILL.md +87 -0
- package/agents/skills/yaawn-write-other/SKILL.md +90 -0
- package/agents/skills/yaawn-write-refactor/SKILL.md +94 -0
- package/agents/skills/yaawn-write-spike/SKILL.md +94 -0
- package/agents/skills/yaawn-write-user-story/SKILL.md +187 -0
- package/agents/skills/yaawn-write-user-story/references/acceptance-criteria.md +186 -0
- package/agents/skills/yaawn-write-user-story/references/five-types-of-value.md +82 -0
- package/agents/skills/yaawn-write-user-story/references/user-story-fundamentals.md +75 -0
- package/agents/yaawn-glossary.md +146 -0
- package/agents/yaawn-grilling.md +75 -0
- package/agents/yaawn-worktrees.md +69 -0
- package/config/install-tasks.json +35 -0
- package/config/settings.json +23 -0
- package/config/wizard.json +128 -0
- package/github/ISSUE_TEMPLATE/yaawn-bug-report.md +59 -0
- package/github/ISSUE_TEMPLATE/yaawn-other.md +38 -0
- package/github/ISSUE_TEMPLATE/yaawn-refactor.md +38 -0
- package/github/ISSUE_TEMPLATE/yaawn-spike.md +16 -0
- package/github/ISSUE_TEMPLATE/yaawn-story.md +56 -0
- package/package.json +33 -4
- package/scripts/install.js +73 -0
- package/yaawn/gitignore +1 -0
- package/yaawn/yaawn-definition-of-done.md +5 -0
- package/yaawn/yaawn-project-glossary.md +7 -0
- package/yaawn/yaawn-user-roles.md +3 -0
- package/yaawn/yaawn-verification-commands.md +7 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
about: Create a report to help us improve
|
|
3
|
+
assignees: ""
|
|
4
|
+
labels: ["Yaawn: Bug", "Yaawn: To Be Refined"]
|
|
5
|
+
name: Yaawn Bug report
|
|
6
|
+
projects: []
|
|
7
|
+
title: ""
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Summary
|
|
11
|
+
|
|
12
|
+
<!-- Describe in short easy to understand words the problem (not the solution). -->
|
|
13
|
+
|
|
14
|
+
## Steps to reproduce
|
|
15
|
+
|
|
16
|
+
1. ...
|
|
17
|
+
|
|
18
|
+
## What is the current behavior?
|
|
19
|
+
|
|
20
|
+
## What is the expected behavior?
|
|
21
|
+
|
|
22
|
+
## Relevant logs and/or screenshots
|
|
23
|
+
|
|
24
|
+
## Environment
|
|
25
|
+
|
|
26
|
+
- System:
|
|
27
|
+
- App-Version:
|
|
28
|
+
- OS:
|
|
29
|
+
- Browser:
|
|
30
|
+
- Browser-Version:
|
|
31
|
+
- Screen Resolution:
|
|
32
|
+
|
|
33
|
+
## Implementation Plan
|
|
34
|
+
|
|
35
|
+
<!-- How? Talk about this during planning part 3 or during work. -->
|
|
36
|
+
|
|
37
|
+
### Human Readable
|
|
38
|
+
|
|
39
|
+
### Open Questions
|
|
40
|
+
|
|
41
|
+
| # | Questions | Owner | Answer |
|
|
42
|
+
| --- | --------- | ----- | ------ |
|
|
43
|
+
| | | | |
|
|
44
|
+
|
|
45
|
+
### Design Decisions
|
|
46
|
+
|
|
47
|
+
<!-- Document decisions here that were made during planning or a grilling session. -->
|
|
48
|
+
|
|
49
|
+
| # | Decision | Choice | Rationale |
|
|
50
|
+
| --- | -------- | ------ | --------- |
|
|
51
|
+
| | | | |
|
|
52
|
+
|
|
53
|
+
### Files to Change
|
|
54
|
+
|
|
55
|
+
<!-- Bullet list of repo-relative paths of every file the implementation will change. -->
|
|
56
|
+
|
|
57
|
+
### LLM Plan
|
|
58
|
+
|
|
59
|
+
<!-- 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: 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.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.4.0",
|
|
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.4.0",
|
|
30
|
+
"@yaawn/workflow-darwin-x64": "0.4.0",
|
|
31
|
+
"@yaawn/workflow-linux-x64": "0.4.0",
|
|
32
|
+
"@yaawn/workflow-linux-arm64": "0.4.0",
|
|
33
|
+
"@yaawn/workflow-win32-x64": "0.4.0"
|
|
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);
|
package/yaawn/gitignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
yaawn-settings.json
|
|
@@ -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`, optionally followed by ` - ` and a short description of what the role wants to achieve, e.g. `- Account Owner - wants to keep the account secure`. A plain `- Role` bullet with no description still works. 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`
|