aw-ecc 1.4.21 → 1.4.25
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/.claude-plugin/plugin.json +1 -1
- package/.codex/hooks/aw-post-tool-use.sh +1 -0
- package/.codex/hooks/aw-pre-tool-use.sh +1 -0
- package/.codex/hooks/aw-session-start.sh +4 -0
- package/.codex/hooks/aw-stop.sh +1 -0
- package/.codex/hooks/aw-user-prompt-submit.sh +1 -0
- package/.cursor/INSTALL.md +9 -0
- package/.cursor/hooks/adapter.js +34 -3
- package/.cursor/hooks/aw-phase-definitions.js +11 -0
- package/.cursor/hooks/before-submit-prompt.js +1 -1
- package/.cursor/hooks/before-submit-prompt.sh +17 -0
- package/.cursor/hooks/session-start.sh +36 -0
- package/.cursor/hooks/shared/aw-phase-definitions.js +1 -19
- package/.cursor/hooks/shared/aw-phase-runner.js +38 -2
- package/.cursor/hooks/shared/session-start.sh +4 -0
- package/.cursor/hooks/shared/user-prompt-submit.sh +33 -140
- package/.cursor/hooks.json +15 -15
- package/.cursor/rules/common-aw-routing.md +43 -0
- package/.cursor/skills/api-and-interface-design/SKILL.md +75 -0
- package/.cursor/skills/aw-brainstorm/SKILL.md +115 -0
- package/.cursor/skills/aw-build/SKILL.md +152 -0
- package/.cursor/skills/aw-build/evals/build-stage-cases.json +28 -0
- package/.cursor/skills/aw-debug/SKILL.md +49 -0
- package/.cursor/skills/aw-deploy/SKILL.md +101 -0
- package/.cursor/skills/aw-deploy/evals/deploy-stage-cases.json +32 -0
- package/.cursor/skills/aw-execute/SKILL.md +47 -0
- package/.cursor/skills/aw-execute/references/mode-code.md +47 -0
- package/.cursor/skills/aw-execute/references/mode-docs.md +28 -0
- package/.cursor/skills/aw-execute/references/mode-infra.md +44 -0
- package/.cursor/skills/aw-execute/references/mode-migration.md +58 -0
- package/.cursor/skills/aw-execute/references/worker-implementer.md +26 -0
- package/.cursor/skills/aw-execute/references/worker-parallel-worker.md +23 -0
- package/.cursor/skills/aw-execute/references/worker-quality-reviewer.md +23 -0
- package/.cursor/skills/aw-execute/references/worker-spec-reviewer.md +23 -0
- package/.cursor/skills/aw-execute/scripts/build-worker-bundle.js +229 -0
- package/.cursor/skills/aw-finish/SKILL.md +111 -0
- package/.cursor/skills/aw-investigate/SKILL.md +109 -0
- package/.cursor/skills/aw-plan/SKILL.md +368 -0
- package/.cursor/skills/aw-prepare/SKILL.md +118 -0
- package/.cursor/skills/aw-review/SKILL.md +118 -0
- package/.cursor/skills/aw-ship/SKILL.md +115 -0
- package/.cursor/skills/aw-spec/SKILL.md +104 -0
- package/.cursor/skills/aw-tasks/SKILL.md +138 -0
- package/.cursor/skills/aw-test/SKILL.md +118 -0
- package/.cursor/skills/aw-verify/SKILL.md +51 -0
- package/.cursor/skills/aw-yolo/SKILL.md +111 -0
- package/.cursor/skills/browser-testing-with-devtools/SKILL.md +81 -0
- package/.cursor/skills/ci-cd-and-automation/SKILL.md +71 -0
- package/.cursor/skills/code-simplification/SKILL.md +74 -0
- package/.cursor/skills/context-engineering/SKILL.md +74 -0
- package/.cursor/skills/deprecation-and-migration/SKILL.md +75 -0
- package/.cursor/skills/documentation-and-adrs/SKILL.md +75 -0
- package/.cursor/skills/frontend-ui-engineering/SKILL.md +68 -0
- package/.cursor/skills/git-workflow-and-versioning/SKILL.md +75 -0
- package/.cursor/skills/idea-refine/SKILL.md +84 -0
- package/.cursor/skills/incremental-implementation/SKILL.md +75 -0
- package/.cursor/skills/performance-optimization/SKILL.md +77 -0
- package/.cursor/skills/security-and-hardening/SKILL.md +70 -0
- package/.cursor/skills/using-aw-skills/SKILL.md +290 -0
- package/.cursor/skills/using-aw-skills/evals/skill-trigger-cases.tsv +25 -0
- package/.cursor/skills/using-aw-skills/evals/test-skill-triggers.sh +171 -0
- package/.cursor/skills/using-aw-skills/hooks/hooks.json +9 -0
- package/.cursor/skills/using-aw-skills/hooks/session-start.sh +67 -0
- package/.cursor/skills/using-platform-skills/SKILL.md +163 -0
- package/.cursor/skills/using-platform-skills/evals/platform-selection-cases.json +52 -0
- package/.opencode/package.json +1 -1
- package/package.json +3 -1
- package/scripts/cursor-aw-home/hooks.json +15 -15
- package/scripts/cursor-aw-hooks/adapter.js +34 -3
- package/scripts/cursor-aw-hooks/aw-phase-definitions.js +11 -0
- package/scripts/cursor-aw-hooks/before-submit-prompt.js +1 -1
- package/scripts/cursor-aw-hooks/before-submit-prompt.sh +17 -0
- package/scripts/cursor-aw-hooks/session-start.sh +36 -0
- package/scripts/hooks/session-start-rules-context.sh +8 -1
- package/scripts/hooks/shared/aw-phase-definitions.js +1 -19
- package/scripts/hooks/shared/aw-phase-runner.js +38 -2
- package/scripts/hooks/shared/session-start.sh +4 -0
- package/scripts/hooks/shared/user-prompt-submit.sh +33 -140
- package/scripts/lib/cursor-aw-hook-files.js +2 -0
- package/scripts/lib/cursor-hook-config.js +47 -15
- package/scripts/lib/install-executor.js +7 -0
- package/scripts/lib/install-targets/cursor-project.js +7 -0
- package/skills/using-aw-skills/hooks/session-start.sh +4 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: git-workflow-and-versioning
|
|
3
|
+
description: Keeps work reviewable, reversible, and well-scoped. Use for any code change that needs branches, save points, commit hygiene, or parallel work isolation.
|
|
4
|
+
origin: ECC
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Git Workflow and Versioning
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
Git is the safety system for fast-moving engineering work.
|
|
12
|
+
Treat branches as sandboxes, commits as save points, and history as operational documentation for humans, reviewers, and future agents.
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
- making any code, config, docs, or migration change
|
|
17
|
+
- deciding branch or worktree strategy
|
|
18
|
+
- choosing commit boundaries
|
|
19
|
+
- preparing changes for review or rollback
|
|
20
|
+
- organizing parallel agent or multi-slice work
|
|
21
|
+
|
|
22
|
+
**When NOT to use**
|
|
23
|
+
|
|
24
|
+
- only when no repository-backed change is being made at all
|
|
25
|
+
|
|
26
|
+
## Workflow
|
|
27
|
+
|
|
28
|
+
1. Start from the smallest isolated workspace that fits the change.
|
|
29
|
+
Prefer short-lived feature branches.
|
|
30
|
+
For parallel work or risky experiments, use worktrees instead of branch thrash.
|
|
31
|
+
2. Size the work before committing.
|
|
32
|
+
Break the change into logical slices that can be explained, reviewed, and reverted independently.
|
|
33
|
+
Use `../../references/git-save-points.md` when save-point discipline matters.
|
|
34
|
+
3. Commit each successful increment.
|
|
35
|
+
The pattern is:
|
|
36
|
+
implement slice -> verify slice -> commit slice.
|
|
37
|
+
Do not wait for one giant final commit.
|
|
38
|
+
4. Keep concerns separate.
|
|
39
|
+
Avoid mixing formatting, refactors, dependency churn, and feature behavior in the same commit unless they are inseparable.
|
|
40
|
+
Reviewable history is part of engineering quality.
|
|
41
|
+
5. Run pre-commit hygiene.
|
|
42
|
+
Check the staged diff, run the smallest relevant validation, and verify secrets or generated junk are not being committed.
|
|
43
|
+
6. Leave a scope map for the next human or agent.
|
|
44
|
+
Name:
|
|
45
|
+
- what changed
|
|
46
|
+
- what did not change
|
|
47
|
+
- what still needs follow-up
|
|
48
|
+
In AW flows, keep this aligned with the stage artifacts and change summaries.
|
|
49
|
+
|
|
50
|
+
## Common Rationalizations
|
|
51
|
+
|
|
52
|
+
| Rationalization | Reality |
|
|
53
|
+
|---|---|
|
|
54
|
+
| "I'll clean up the history later." | Messy history is harder to split and explain after the fact. |
|
|
55
|
+
| "One big commit is faster." | Giant commits are slower to review, debug, and revert. |
|
|
56
|
+
| "This cleanup can ride along with the feature." | Mixed concerns make scope, blame, and rollback harder. |
|
|
57
|
+
| "I don't need an isolated branch for a small change." | Isolation is cheap; accidental overlap is expensive. |
|
|
58
|
+
|
|
59
|
+
## Red Flags
|
|
60
|
+
|
|
61
|
+
- one commit mixes unrelated concerns
|
|
62
|
+
- the diff is too large to explain in one sentence
|
|
63
|
+
- no save point exists between meaningful slices
|
|
64
|
+
- generated output, secrets, or local-only noise are staged
|
|
65
|
+
- branch or worktree discipline is vague during multi-agent work
|
|
66
|
+
|
|
67
|
+
## Verification
|
|
68
|
+
|
|
69
|
+
After using git workflow discipline, confirm:
|
|
70
|
+
|
|
71
|
+
- [ ] the work is isolated in the right branch or worktree
|
|
72
|
+
- [ ] commit boundaries match real progress
|
|
73
|
+
- [ ] staged content excludes secrets and unrelated noise
|
|
74
|
+
- [ ] the history is reviewable and reversible
|
|
75
|
+
- [ ] the change summary makes scope boundaries explicit
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: idea-refine
|
|
3
|
+
description: Refines raw ideas into sharper, build-worthy directions. Use when a request starts as an idea, concept, or vague opportunity rather than an implementation-ready plan.
|
|
4
|
+
origin: ECC
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Idea Refine
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
Refine ideas before turning them into specs.
|
|
12
|
+
This skill takes a raw concept, pressure-tests it, and turns it into a concrete direction with explicit assumptions, MVP scope, and a clear "not doing" list.
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
- the user has a raw product, feature, or workflow idea
|
|
17
|
+
- the request is still more concept than plan
|
|
18
|
+
- multiple possible directions exist and the tradeoffs are not obvious
|
|
19
|
+
- the team needs a sharper problem statement before `aw-plan`
|
|
20
|
+
|
|
21
|
+
**When NOT to use**
|
|
22
|
+
|
|
23
|
+
- the technical direction is already approved and the work is ready for `aw-plan`
|
|
24
|
+
- the task is really implementation, testing, or review rather than idea shaping
|
|
25
|
+
|
|
26
|
+
## Workflow
|
|
27
|
+
|
|
28
|
+
1. Restate the idea as a sharp problem.
|
|
29
|
+
Convert the raw concept into a crisp problem statement or "How Might We" framing.
|
|
30
|
+
The goal is to name who the work is for and what better outcome it creates.
|
|
31
|
+
2. Ask only the questions that change the direction.
|
|
32
|
+
Focus on:
|
|
33
|
+
- target user or operator
|
|
34
|
+
- success criteria
|
|
35
|
+
- real constraints
|
|
36
|
+
- timing or urgency
|
|
37
|
+
- what has already been tried
|
|
38
|
+
3. Generate a small set of meaningful directions.
|
|
39
|
+
Explore 3-5 distinct options instead of polishing the first instinct.
|
|
40
|
+
Use lenses like simplification, inversion, audience shift, or "what would make this 10x more valuable?"
|
|
41
|
+
4. Converge with pressure, not vibes.
|
|
42
|
+
Compare directions on:
|
|
43
|
+
- user value
|
|
44
|
+
- feasibility
|
|
45
|
+
- org fit and platform constraints
|
|
46
|
+
- differentiation
|
|
47
|
+
- rollout or maintenance risk
|
|
48
|
+
5. Surface the bet explicitly.
|
|
49
|
+
Name:
|
|
50
|
+
- key assumptions
|
|
51
|
+
- what could kill the idea
|
|
52
|
+
- MVP scope
|
|
53
|
+
- what we are intentionally not doing
|
|
54
|
+
6. Produce a one-pager that can move into planning.
|
|
55
|
+
The output should be easy to hand to `aw-plan` or `aw-brainstorm` without redoing the ideation.
|
|
56
|
+
In AW repos, keep this outcome inside planning artifacts or `state.json` instead of inventing a second artifact system.
|
|
57
|
+
|
|
58
|
+
## Common Rationalizations
|
|
59
|
+
|
|
60
|
+
| Rationalization | Reality |
|
|
61
|
+
|---|---|
|
|
62
|
+
| "We already know what to build." | If the problem statement and user are fuzzy, the plan will be fuzzy too. |
|
|
63
|
+
| "More ideas is always better." | A few meaningful directions beat a long list of shallow variants. |
|
|
64
|
+
| "We'll decide scope once we start building." | Scope discovered too late becomes rework and churn. |
|
|
65
|
+
| "Not doing lists are negative." | Explicitly saying no is what makes a direction buildable. |
|
|
66
|
+
|
|
67
|
+
## Red Flags
|
|
68
|
+
|
|
69
|
+
- the output jumps to implementation without clarifying user value
|
|
70
|
+
- only one direction is considered when real alternatives exist
|
|
71
|
+
- no assumptions or risks are surfaced
|
|
72
|
+
- the final direction has no MVP boundary or "not doing" list
|
|
73
|
+
- ideation silently turns into coding or detailed task planning
|
|
74
|
+
|
|
75
|
+
## Verification
|
|
76
|
+
|
|
77
|
+
After refining an idea, confirm:
|
|
78
|
+
|
|
79
|
+
- [ ] the problem statement is explicit
|
|
80
|
+
- [ ] the target user or operator and success criteria are named
|
|
81
|
+
- [ ] multiple viable directions were considered
|
|
82
|
+
- [ ] key assumptions and failure risks are visible
|
|
83
|
+
- [ ] MVP scope and "not doing" boundaries are clear
|
|
84
|
+
- [ ] the output is ready to feed `aw-plan` without restarting discovery
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: incremental-implementation
|
|
3
|
+
description: Delivers multi-file work in thin, reversible slices. Use when a change spans more than one file, when a task feels too large to land safely in one pass, or when rollback clarity matters.
|
|
4
|
+
origin: ECC
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Incremental Implementation
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
Build in thin vertical slices.
|
|
12
|
+
Each slice should leave the system in a working, testable, reviewable state before the next one begins, but a passing slice is only a checkpoint until the approved build scope is complete.
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
- a change touches more than one file
|
|
17
|
+
- a feature is large enough to tempt one big patch
|
|
18
|
+
- a migration, UI change, or rollout-sensitive task needs safe checkpoints
|
|
19
|
+
- you want commit boundaries that reflect real progress
|
|
20
|
+
|
|
21
|
+
**When NOT to use**
|
|
22
|
+
|
|
23
|
+
- the work is already truly minimal and single-scope
|
|
24
|
+
- the next step is still unclear and needs planning or investigation first
|
|
25
|
+
|
|
26
|
+
## Workflow
|
|
27
|
+
|
|
28
|
+
1. Select the next smallest slice.
|
|
29
|
+
Start from approved scope.
|
|
30
|
+
Choose one user-visible behavior, one boundary change, or one safe infrastructure increment.
|
|
31
|
+
2. Define the proof for that slice.
|
|
32
|
+
Name the failing signal, acceptance check, or runtime evidence that will prove the slice is real.
|
|
33
|
+
3. Implement only that slice.
|
|
34
|
+
Avoid adjacent cleanup and hidden follow-on work.
|
|
35
|
+
Use `../../references/build-increments.md` when sizing or rollback shape is fuzzy.
|
|
36
|
+
4. Verify immediately.
|
|
37
|
+
Run the smallest relevant check:
|
|
38
|
+
- targeted test
|
|
39
|
+
- build or typecheck
|
|
40
|
+
- runtime/browser proof
|
|
41
|
+
- migration validation
|
|
42
|
+
5. Save the progress cleanly.
|
|
43
|
+
Use `../../references/git-save-points.md` when the work benefits from explicit commit discipline.
|
|
44
|
+
A good save point is small, passing, and easy to explain.
|
|
45
|
+
6. Decide whether to continue or hand off.
|
|
46
|
+
If more approved build slices remain, continue with the next slice.
|
|
47
|
+
If the approved build scope is complete and the next unsatisfied need is QA, review, or release work, stop and hand off.
|
|
48
|
+
Do not keep building just because speculative cleanup or unrelated improvements are possible.
|
|
49
|
+
|
|
50
|
+
## Common Rationalizations
|
|
51
|
+
|
|
52
|
+
| Rationalization | Reality |
|
|
53
|
+
|---|---|
|
|
54
|
+
| "I'll do the whole feature first, then test it." | Large unverified batches hide regressions and make rollback harder. |
|
|
55
|
+
| "This extra cleanup is basically free." | Scope creep weakens slice boundaries and review quality. |
|
|
56
|
+
| "I don't need a save point yet." | Save points matter most before the diff becomes hard to reason about. |
|
|
57
|
+
| "The slice is too small to be worth validating." | Small slices are exactly what make validation cheap and reliable. |
|
|
58
|
+
|
|
59
|
+
## Red Flags
|
|
60
|
+
|
|
61
|
+
- one slice changes multiple unrelated behaviors
|
|
62
|
+
- one passing slice is treated as the end of build even though approved build slices remain
|
|
63
|
+
- rollback is unclear after the latest patch
|
|
64
|
+
- tests are deferred instead of attached to the slice
|
|
65
|
+
- commit/save-point boundaries no longer match meaningful progress
|
|
66
|
+
|
|
67
|
+
## Verification
|
|
68
|
+
|
|
69
|
+
After each increment, confirm:
|
|
70
|
+
|
|
71
|
+
- [ ] the slice has one clear purpose
|
|
72
|
+
- [ ] the slice has current proof, not assumed proof
|
|
73
|
+
- [ ] the diff is still reversible and reviewable
|
|
74
|
+
- [ ] the next slice is either the next approved build step or an explicit handoff boundary
|
|
75
|
+
- [ ] save points reflect meaningful progress
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: performance-optimization
|
|
3
|
+
description: Optimizes performance with a measure-first workflow. Use when performance requirements exist, when regressions are suspected, or when user-visible speed and efficiency matter.
|
|
4
|
+
origin: ECC
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Performance Optimization
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
Measure first, optimize second.
|
|
12
|
+
Performance work should improve a real bottleneck, not just produce clever code.
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
- a feature has explicit performance budgets or SLAs
|
|
17
|
+
- users or monitoring report slow behavior
|
|
18
|
+
- Core Web Vitals or endpoint timings are regressing
|
|
19
|
+
- large datasets, hot paths, or expensive rendering are involved
|
|
20
|
+
- review identifies likely performance risk that needs proof
|
|
21
|
+
|
|
22
|
+
**When NOT to use**
|
|
23
|
+
|
|
24
|
+
- there is no measurement and no evidence of a problem
|
|
25
|
+
- the "optimization" is really a speculative rewrite
|
|
26
|
+
|
|
27
|
+
## Workflow
|
|
28
|
+
|
|
29
|
+
1. Choose the performance goal.
|
|
30
|
+
Name the metric that matters:
|
|
31
|
+
- browser responsiveness
|
|
32
|
+
- Core Web Vitals
|
|
33
|
+
- API latency
|
|
34
|
+
- query efficiency
|
|
35
|
+
- throughput or batch time
|
|
36
|
+
2. Establish a baseline.
|
|
37
|
+
Use `../../references/performance-checklist.md`.
|
|
38
|
+
Capture the current measurement before touching code.
|
|
39
|
+
3. Localize the bottleneck.
|
|
40
|
+
Identify whether the cost is in:
|
|
41
|
+
- network
|
|
42
|
+
- rendering
|
|
43
|
+
- computation
|
|
44
|
+
- data access
|
|
45
|
+
- bundle or startup cost
|
|
46
|
+
4. Apply the smallest meaningful fix.
|
|
47
|
+
Optimize the proven bottleneck, not the whole subsystem.
|
|
48
|
+
5. Measure again.
|
|
49
|
+
Confirm the change improved the chosen metric and did not create a regression elsewhere.
|
|
50
|
+
6. Guard the gain.
|
|
51
|
+
Add follow-up monitoring, benchmark expectations, or review notes so the regression is less likely to return.
|
|
52
|
+
|
|
53
|
+
## Common Rationalizations
|
|
54
|
+
|
|
55
|
+
| Rationalization | Reality |
|
|
56
|
+
|---|---|
|
|
57
|
+
| "This looks slow, so I'll optimize it now." | Visual intuition is not measurement. |
|
|
58
|
+
| "I'll rewrite it for performance just in case." | Premature optimization adds complexity and often misses the real bottleneck. |
|
|
59
|
+
| "A micro-optimization is better than no optimization." | Small cleverness is noise if the dominant cost lives elsewhere. |
|
|
60
|
+
| "The benchmark is enough; user experience will follow." | Good optimization improves the metric that matters to the user or operator, not just the easiest one to measure. |
|
|
61
|
+
|
|
62
|
+
## Red Flags
|
|
63
|
+
|
|
64
|
+
- no baseline exists before code changes
|
|
65
|
+
- the optimization changes multiple subsystems at once
|
|
66
|
+
- claimed improvements are not measured after the fix
|
|
67
|
+
- the new code is much harder to maintain for marginal gain
|
|
68
|
+
|
|
69
|
+
## Verification
|
|
70
|
+
|
|
71
|
+
After optimizing, confirm:
|
|
72
|
+
|
|
73
|
+
- [ ] the target metric was explicit
|
|
74
|
+
- [ ] a before/after measurement exists
|
|
75
|
+
- [ ] the fix targeted the actual bottleneck
|
|
76
|
+
- [ ] no obvious regression was introduced elsewhere
|
|
77
|
+
- [ ] the performance gain is documented in a form reviewers can verify
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-and-hardening
|
|
3
|
+
description: Hardens code and system boundaries against misuse. Use when working with authentication, user input, secrets, external integrations, sensitive data, or any new trust boundary.
|
|
4
|
+
origin: ECC
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Security And Hardening
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
Security is boundary work.
|
|
12
|
+
This skill makes the agent classify trust boundaries, harden them deliberately, and prove the risky paths were reviewed rather than assumed safe.
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
- adding or changing authentication or authorization
|
|
17
|
+
- handling user input, uploads, webhooks, or external API traffic
|
|
18
|
+
- working with secrets, tokens, session state, or encryption
|
|
19
|
+
- storing or transmitting sensitive or regulated data
|
|
20
|
+
- introducing a new integration, endpoint, or background execution path
|
|
21
|
+
|
|
22
|
+
**When NOT to use**
|
|
23
|
+
|
|
24
|
+
- purely local changes with no user, network, secret, or boundary impact
|
|
25
|
+
|
|
26
|
+
## Workflow
|
|
27
|
+
|
|
28
|
+
1. Classify the boundaries first.
|
|
29
|
+
Identify:
|
|
30
|
+
- external input boundaries
|
|
31
|
+
- authz and identity boundaries
|
|
32
|
+
- data storage boundaries
|
|
33
|
+
- outbound trust boundaries
|
|
34
|
+
2. Harden the entry points.
|
|
35
|
+
Validate input, apply authn/authz, enforce tenant or ownership scoping, and reject malformed or over-broad requests early.
|
|
36
|
+
3. Protect secrets and configuration.
|
|
37
|
+
Use `../../references/security-checklist.md`.
|
|
38
|
+
Secrets must stay out of source, logs, screenshots, and error payloads.
|
|
39
|
+
4. Reduce abuse and blast radius.
|
|
40
|
+
Add rate limits, safe defaults, least privilege, error handling, and logging that helps operators without leaking sensitive data.
|
|
41
|
+
5. Review dependencies and operational posture.
|
|
42
|
+
Check whether packages, headers, storage settings, or integration modes introduce known risk.
|
|
43
|
+
6. Prove the risky path was considered.
|
|
44
|
+
Name what was hardened, what remains risky, and what follow-up work is still required.
|
|
45
|
+
|
|
46
|
+
## Common Rationalizations
|
|
47
|
+
|
|
48
|
+
| Rationalization | Reality |
|
|
49
|
+
|---|---|
|
|
50
|
+
| "It's internal, so the security bar is lower." | Internal paths still become attack surfaces and privilege boundaries. |
|
|
51
|
+
| "The framework handles that automatically." | Framework defaults help, but boundary ownership still belongs to the implementation. |
|
|
52
|
+
| "We'll secure it after the happy path works." | Security debt compounds quickly once an interface is already in use. |
|
|
53
|
+
| "Nobody will hit that edge case." | Attackers and accidental misuse both live in edge cases. |
|
|
54
|
+
|
|
55
|
+
## Red Flags
|
|
56
|
+
|
|
57
|
+
- trust boundaries are unclear or unnamed
|
|
58
|
+
- secrets appear in code, logs, or test fixtures
|
|
59
|
+
- auth exists without authorization checks
|
|
60
|
+
- outbound integrations accept overly broad input or destination control
|
|
61
|
+
|
|
62
|
+
## Verification
|
|
63
|
+
|
|
64
|
+
After hardening, confirm:
|
|
65
|
+
|
|
66
|
+
- [ ] the relevant trust boundaries are explicit
|
|
67
|
+
- [ ] input, auth, and secret handling were reviewed deliberately
|
|
68
|
+
- [ ] abusive or malformed requests fail safely
|
|
69
|
+
- [ ] logs and errors avoid leaking sensitive data
|
|
70
|
+
- [ ] remaining security risks or follow-ups are documented
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: using-aw-skills
|
|
3
|
+
description: Session-start skill-first routing for the AW SDLC surface. Select the smallest correct AW skill stack before any substantive response, then load deeper stage, domain, and org-standard detail on demand.
|
|
4
|
+
trigger: Every session start. Loaded automatically via session-start hook.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Using AW Skills
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
This skill is the thin router for the AW SDLC surface.
|
|
12
|
+
Its job is to:
|
|
13
|
+
|
|
14
|
+
- choose the smallest correct public route
|
|
15
|
+
- choose the smallest correct AW skill stack
|
|
16
|
+
- stop generic commentary until the stage is clear
|
|
17
|
+
- load deeper references only when they materially change the decision
|
|
18
|
+
|
|
19
|
+
Keep this file small.
|
|
20
|
+
Stage behavior belongs in stage skills.
|
|
21
|
+
Long examples, checklists, and loading guidance belong in shared references.
|
|
22
|
+
|
|
23
|
+
This means the file should optimize for one thing first:
|
|
24
|
+
|
|
25
|
+
- make the right next skill obvious
|
|
26
|
+
|
|
27
|
+
## When to Use
|
|
28
|
+
|
|
29
|
+
- at session start
|
|
30
|
+
- before any substantive response
|
|
31
|
+
- whenever the request might map to planning, building, investigating, testing, reviewing, deploying, or shipping work
|
|
32
|
+
- whenever the user gives a vague request and the right stage still has to be selected
|
|
33
|
+
|
|
34
|
+
Do not skip this skill just because the work looks small.
|
|
35
|
+
|
|
36
|
+
## Skill Discovery
|
|
37
|
+
|
|
38
|
+
When a task arrives, identify the current delivery phase and load the smallest correct route:
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
Task arrives
|
|
42
|
+
│
|
|
43
|
+
├── Vague idea, spec, or task breakdown? ───────→ /aw:plan
|
|
44
|
+
├── Approved change to implement? ──────────────→ /aw:build
|
|
45
|
+
├── Bug, alert, or unclear runtime failure? ────→ /aw:investigate
|
|
46
|
+
├── Need QA proof or regression evidence? ──────→ /aw:test
|
|
47
|
+
├── Need findings or readiness decision? ───────→ /aw:review
|
|
48
|
+
├── Need one concrete release action? ──────────→ /aw:deploy
|
|
49
|
+
├── Need launch or rollout closeout? ───────────→ /aw:ship
|
|
50
|
+
└── Need one-run end-to-end automation? ───────→ aw-yolo
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Then load the supporting craft and domain skills that sharpen that route.
|
|
54
|
+
If the work is in a real GHL domain, load `using-platform-skills` next.
|
|
55
|
+
|
|
56
|
+
## Public Surface
|
|
57
|
+
|
|
58
|
+
The public surface stays intentionally small.
|
|
59
|
+
The canonical routes are the stages shown in the discovery flow above:
|
|
60
|
+
|
|
61
|
+
- `/aw:plan`, `/aw:build`, `/aw:test`, `/aw:review`, `/aw:deploy`, `/aw:ship`
|
|
62
|
+
- `/aw:investigate`
|
|
63
|
+
|
|
64
|
+
Default delivery flow:
|
|
65
|
+
|
|
66
|
+
- `/aw:plan` -> `/aw:build` -> `/aw:test` -> `/aw:review` -> `/aw:deploy` -> `/aw:ship`
|
|
67
|
+
|
|
68
|
+
Conditional route:
|
|
69
|
+
|
|
70
|
+
- `/aw:investigate`
|
|
71
|
+
|
|
72
|
+
`/aw:investigate` is a first-class route for bugs, alerts, regressions, and unclear root cause.
|
|
73
|
+
It should not be treated as a mandatory phase in every request.
|
|
74
|
+
|
|
75
|
+
Compatibility entrypoints remain available during migration:
|
|
76
|
+
|
|
77
|
+
- `/aw:execute` -> `/aw:build`
|
|
78
|
+
- `/aw:verify` -> `/aw:test`, `/aw:review`, or the smallest correct combined verification flow
|
|
79
|
+
|
|
80
|
+
There is also one explicit internal power workflow:
|
|
81
|
+
|
|
82
|
+
- `aw-yolo`
|
|
83
|
+
|
|
84
|
+
`aw-yolo` is for clearly end-to-end requests where the user wants one-run automation.
|
|
85
|
+
It should not become the default route for normal stage-specific work.
|
|
86
|
+
When it is selected, begin at the first unsatisfied stage rather than restarting the lifecycle from the top.
|
|
87
|
+
|
|
88
|
+
## Core Operating Behaviors
|
|
89
|
+
|
|
90
|
+
These behaviors apply across every route.
|
|
91
|
+
|
|
92
|
+
### 1. Surface Assumptions
|
|
93
|
+
|
|
94
|
+
Name assumptions that materially change scope, architecture, rollout, or verification.
|
|
95
|
+
If an assumption could change the selected route, say it early.
|
|
96
|
+
|
|
97
|
+
### 2. Manage Confusion Actively
|
|
98
|
+
|
|
99
|
+
If the request, spec, code, or baseline disagree:
|
|
100
|
+
|
|
101
|
+
1. stop
|
|
102
|
+
2. name the contradiction
|
|
103
|
+
3. state the tradeoff or blocking question
|
|
104
|
+
4. do not guess through it
|
|
105
|
+
|
|
106
|
+
### 3. Push Back With Concrete Tradeoffs
|
|
107
|
+
|
|
108
|
+
If an approach creates obvious risk, complexity, or rollout danger:
|
|
109
|
+
|
|
110
|
+
- say so directly
|
|
111
|
+
- name the downside
|
|
112
|
+
- propose the smallest safer alternative
|
|
113
|
+
|
|
114
|
+
### 4. Enforce Simplicity
|
|
115
|
+
|
|
116
|
+
Prefer the smallest route and the smallest supporting skill stack.
|
|
117
|
+
Do not turn a single-stage task into a hidden multi-stage workflow.
|
|
118
|
+
|
|
119
|
+
### 5. Maintain Scope Discipline
|
|
120
|
+
|
|
121
|
+
Touch only the stage and supporting context required for the current request.
|
|
122
|
+
Do not reopen planning, implementation, or release work without a reason.
|
|
123
|
+
|
|
124
|
+
### 6. Verify, Don't Assume
|
|
125
|
+
|
|
126
|
+
Every route must eventually produce evidence, not just confidence.
|
|
127
|
+
Proof belongs in the right stage artifact, not only in narration.
|
|
128
|
+
|
|
129
|
+
## Always-On Activation
|
|
130
|
+
|
|
131
|
+
Before any substantive response, this router must select the smallest correct AW skill stack and matching public route.
|
|
132
|
+
|
|
133
|
+
- explicit user command -> honor that command and load the mapped AW stage skill first
|
|
134
|
+
- clear process need -> load the needed internal process skill first
|
|
135
|
+
- otherwise choose the smallest correct AW primary stage skill and matching public route by intent
|
|
136
|
+
- only after the required AW skills are selected, load deeper domain skills or ask clarifying questions
|
|
137
|
+
|
|
138
|
+
Do not start with generic implementation, review, or deploy advice before skill selection.
|
|
139
|
+
Do not leave the active skill stack or matching route implicit for non-trivial work.
|
|
140
|
+
|
|
141
|
+
## The Rule
|
|
142
|
+
|
|
143
|
+
If there is even a small chance that an AW process skill, stage skill, or required domain skill applies, load it before responding.
|
|
144
|
+
|
|
145
|
+
Questions count.
|
|
146
|
+
Clarifying questions count.
|
|
147
|
+
Quick exploration counts.
|
|
148
|
+
|
|
149
|
+
The AW public command is the user-facing projection of the selected primary stage skill.
|
|
150
|
+
|
|
151
|
+
## Skill Priority
|
|
152
|
+
|
|
153
|
+
When multiple AW skills could apply, use this order:
|
|
154
|
+
|
|
155
|
+
1. process skills first:
|
|
156
|
+
- `aw-brainstorm`
|
|
157
|
+
- `aw-debug`
|
|
158
|
+
- `aw-prepare`
|
|
159
|
+
- `aw-yolo`
|
|
160
|
+
2. primary stage skills second:
|
|
161
|
+
- `aw-plan`
|
|
162
|
+
- `aw-build`
|
|
163
|
+
- `aw-investigate`
|
|
164
|
+
- `aw-test`
|
|
165
|
+
- `aw-review`
|
|
166
|
+
- `aw-deploy`
|
|
167
|
+
- `aw-ship`
|
|
168
|
+
3. domain and cross-cutting skills third
|
|
169
|
+
|
|
170
|
+
The selected public route should reflect the primary stage skill, not hide it.
|
|
171
|
+
|
|
172
|
+
## Route Selection
|
|
173
|
+
|
|
174
|
+
Use one primary route unless the user explicitly asks for end-to-end orchestration.
|
|
175
|
+
|
|
176
|
+
For route examples, explicit routing priority, and scope guardrails, see [`../../references/route-selection-patterns.md`](../../references/route-selection-patterns.md).
|
|
177
|
+
|
|
178
|
+
## Failure Modes to Avoid
|
|
179
|
+
|
|
180
|
+
These patterns look productive, but they create routing drift:
|
|
181
|
+
|
|
182
|
+
1. answering quickly before selecting a route
|
|
183
|
+
2. treating exploration as exempt from routing
|
|
184
|
+
3. choosing `/aw:investigate` for every bug, even when the fix is already known
|
|
185
|
+
4. treating `aw-yolo` as the default because it feels convenient
|
|
186
|
+
5. reopening planning during `build` without a real blocker
|
|
187
|
+
6. silently implementing during `test` or `review`
|
|
188
|
+
7. loading every domain skill "just in case"
|
|
189
|
+
8. giving a confident answer without evidence or stage artifacts
|
|
190
|
+
|
|
191
|
+
## Cross-Cutting Engineering Skills
|
|
192
|
+
|
|
193
|
+
After the primary stage is selected, load the portable craft skill that best sharpens the work:
|
|
194
|
+
|
|
195
|
+
- `idea-refine`
|
|
196
|
+
- `context-engineering`
|
|
197
|
+
- `incremental-implementation`
|
|
198
|
+
- `frontend-ui-engineering`
|
|
199
|
+
- `api-and-interface-design`
|
|
200
|
+
- `browser-testing-with-devtools`
|
|
201
|
+
- `code-simplification`
|
|
202
|
+
- `security-and-hardening`
|
|
203
|
+
- `performance-optimization`
|
|
204
|
+
- `git-workflow-and-versioning`
|
|
205
|
+
- `ci-cd-and-automation`
|
|
206
|
+
- `deprecation-and-migration`
|
|
207
|
+
- `documentation-and-adrs`
|
|
208
|
+
|
|
209
|
+
Load them because they improve the selected stage, not because they create a new public route.
|
|
210
|
+
For domain families, cross-cutting guidance, and org-standard loading, see [`../../references/domain-skill-loading.md`](../../references/domain-skill-loading.md).
|
|
211
|
+
|
|
212
|
+
## Platform Skill Loading
|
|
213
|
+
|
|
214
|
+
After the primary AW route is known, use `using-platform-skills` when GHL platform behavior materially affects the stage.
|
|
215
|
+
|
|
216
|
+
- backend and worker work -> `platform-services:*`
|
|
217
|
+
- frontend and design-system work -> `platform-frontend:*` plus `platform-design:*`
|
|
218
|
+
- data and migrations -> `platform-data:*`
|
|
219
|
+
- infra and deploy paths -> `platform-infra:*`
|
|
220
|
+
- test systems and QA governance -> `platform-sdet:*`
|
|
221
|
+
- review depth and readiness -> `platform-review:*`
|
|
222
|
+
- product context and business behavior -> `platform-product:*`
|
|
223
|
+
|
|
224
|
+
Use `using-platform-skills` to decide the first supporting platform skills for the selected stage.
|
|
225
|
+
|
|
226
|
+
## Context Loading
|
|
227
|
+
|
|
228
|
+
Load context in the smallest order that reduces uncertainty without flooding the session.
|
|
229
|
+
Start with repo-local contracts and approved AW artifacts before broad code search or domain docs.
|
|
230
|
+
|
|
231
|
+
See [`../../references/context-loading-and-intake.md`](../../references/context-loading-and-intake.md).
|
|
232
|
+
|
|
233
|
+
## Org Standards Always On
|
|
234
|
+
|
|
235
|
+
When the selected stage falls inside a resolved baseline profile, the stage must honor:
|
|
236
|
+
|
|
237
|
+
- `defaults/aw-sdlc/baseline-profiles.yml`
|
|
238
|
+
- relevant platform playbooks
|
|
239
|
+
- relevant `.aw_rules`
|
|
240
|
+
|
|
241
|
+
Frontend work should still inherit HighRise, accessibility, responsive, and review expectations.
|
|
242
|
+
Release work should still inherit governance, rollback, and evidence expectations.
|
|
243
|
+
See [`../../references/domain-skill-loading.md`](../../references/domain-skill-loading.md).
|
|
244
|
+
|
|
245
|
+
## Skill Rules
|
|
246
|
+
|
|
247
|
+
1. Check for an applicable AW route before starting real work.
|
|
248
|
+
2. Use one primary route unless the user explicitly asks for end-to-end orchestration.
|
|
249
|
+
3. Load process skills before stage skills when the process itself changes the right path.
|
|
250
|
+
4. Load domain and craft skills only after the primary route is clear.
|
|
251
|
+
5. Load `using-platform-skills` when a GHL platform family materially changes the work.
|
|
252
|
+
6. When in doubt between diagnosis and implementation, choose `/aw:investigate` only if root cause is still unclear.
|
|
253
|
+
7. When in doubt between a normal route and `aw-yolo`, prefer the normal route.
|
|
254
|
+
|
|
255
|
+
## Typical Sequences
|
|
256
|
+
|
|
257
|
+
For a normal feature:
|
|
258
|
+
|
|
259
|
+
```text
|
|
260
|
+
/aw:plan -> /aw:build -> /aw:test -> /aw:review -> /aw:deploy -> /aw:ship
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
For a bug with unclear root cause:
|
|
264
|
+
|
|
265
|
+
```text
|
|
266
|
+
/aw:investigate -> /aw:build -> /aw:test -> /aw:review
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
For a release-ready change that only needs rollout work:
|
|
270
|
+
|
|
271
|
+
```text
|
|
272
|
+
/aw:deploy -> /aw:ship
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
For explicit one-run automation:
|
|
276
|
+
|
|
277
|
+
```text
|
|
278
|
+
aw-yolo -> [smallest correct internal stage sequence]
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
## Verification
|
|
282
|
+
|
|
283
|
+
Before moving past routing, confirm:
|
|
284
|
+
|
|
285
|
+
- [ ] the smallest correct AW skill stack was selected first
|
|
286
|
+
- [ ] the public route matches the actual stage intent
|
|
287
|
+
- [ ] `/aw:investigate` was only chosen when diagnosis is actually required
|
|
288
|
+
- [ ] org-standard playbooks and `.aw_rules` are loaded when the baseline requires them
|
|
289
|
+
- [ ] the task is not being silently broadened into extra stages
|
|
290
|
+
- [ ] `aw-yolo` is used only when the user explicitly asked for end-to-end automation
|