@anionzo/skill 1.1.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/CONTRIBUTING.md +302 -0
- package/LICENSE +21 -0
- package/README.md +209 -0
- package/adapters/README.md +13 -0
- package/adapters/claude-code/README.md +32 -0
- package/adapters/copilot/README.md +32 -0
- package/adapters/gemini/README.md +32 -0
- package/adapters/generic/README.md +32 -0
- package/adapters/opencode/README.md +32 -0
- package/docs/adapter-guide.md +62 -0
- package/docs/authoring-guide.md +69 -0
- package/docs/design-brief.md +97 -0
- package/docs/knowledge-spec.md +78 -0
- package/docs/research-notes.md +99 -0
- package/docs/skill-spec.md +107 -0
- package/i18n/CONTRIBUTING.vi.md +302 -0
- package/i18n/README.vi.md +209 -0
- package/i18n/adapter-guide.vi.md +62 -0
- package/i18n/authoring-guide.vi.md +69 -0
- package/i18n/design-brief.vi.md +97 -0
- package/i18n/knowledge-spec.vi.md +78 -0
- package/i18n/research-notes.vi.md +99 -0
- package/i18n/skill-spec.vi.md +107 -0
- package/knowledge/README.md +7 -0
- package/knowledge/global/debugging-patterns.md +20 -0
- package/knowledge/global/engineering-principles.md +23 -0
- package/knowledge/global/evidence-before-claims.md +20 -0
- package/knowledge/global/review-heuristics.md +23 -0
- package/knowledge/global/skill-triggering-rules.md +24 -0
- package/knowledge/project/README.md +10 -0
- package/knowledge/working/README.md +10 -0
- package/package.json +43 -0
- package/scripts/sync-platform-files +73 -0
- package/scripts/validate-skills +103 -0
- package/skills/brainstorming/SKILL.md +45 -0
- package/skills/brainstorming/examples.md +61 -0
- package/skills/brainstorming/meta.yaml +23 -0
- package/skills/brainstorming/references/output-template.md +26 -0
- package/skills/bug-triage/SKILL.md +47 -0
- package/skills/bug-triage/examples.md +68 -0
- package/skills/bug-triage/meta.yaml +25 -0
- package/skills/bug-triage/references/output-template.md +26 -0
- package/skills/code-review/SKILL.md +41 -0
- package/skills/code-review/examples.md +77 -0
- package/skills/code-review/meta.yaml +24 -0
- package/skills/code-review/references/checklist.md +34 -0
- package/skills/code-review/references/output-template.md +12 -0
- package/skills/docs-writer/SKILL.md +42 -0
- package/skills/docs-writer/examples.md +108 -0
- package/skills/docs-writer/meta.yaml +22 -0
- package/skills/docs-writer/references/output-template.md +17 -0
- package/skills/feature-delivery/SKILL.md +39 -0
- package/skills/feature-delivery/examples.md +83 -0
- package/skills/feature-delivery/meta.yaml +26 -0
- package/skills/feature-delivery/references/output-template.md +26 -0
- package/skills/planning/SKILL.md +61 -0
- package/skills/planning/examples.md +124 -0
- package/skills/planning/meta.yaml +29 -0
- package/skills/planning/references/output-template.md +37 -0
- package/skills/refactor-safe/SKILL.md +53 -0
- package/skills/refactor-safe/examples.md +96 -0
- package/skills/refactor-safe/meta.yaml +28 -0
- package/skills/refactor-safe/references/output-template.md +37 -0
- package/skills/repo-onboarding/SKILL.md +52 -0
- package/skills/repo-onboarding/examples.md +115 -0
- package/skills/repo-onboarding/meta.yaml +23 -0
- package/skills/repo-onboarding/references/output-template.md +24 -0
- package/skills/using-skills/SKILL.md +108 -0
- package/skills/using-skills/examples.md +79 -0
- package/skills/using-skills/meta.yaml +29 -0
- package/skills/using-skills/references/output-template.md +14 -0
- package/skills/verification-before-completion/SKILL.md +46 -0
- package/skills/verification-before-completion/examples.md +83 -0
- package/skills/verification-before-completion/meta.yaml +26 -0
- package/skills/verification-before-completion/references/checklist.md +7 -0
- package/skills/verification-before-completion/references/output-template.md +16 -0
- package/templates/SKILL.md +29 -0
- package/templates/examples.md +13 -0
- package/templates/meta.yaml +14 -0
- package/templates/output-template.md +11 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
#!/usr/bin/env sh
|
|
2
|
+
|
|
3
|
+
set -eu
|
|
4
|
+
|
|
5
|
+
ROOT=$(CDPATH= cd -- "$(dirname "$0")/.." && pwd)
|
|
6
|
+
FAIL=0
|
|
7
|
+
WARN=0
|
|
8
|
+
|
|
9
|
+
require_file() {
|
|
10
|
+
if [ ! -f "$1" ]; then
|
|
11
|
+
printf 'Missing file: %s\n' "$1" >&2
|
|
12
|
+
FAIL=1
|
|
13
|
+
fi
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
require_dir() {
|
|
17
|
+
if [ ! -d "$1" ]; then
|
|
18
|
+
printf 'Missing directory: %s\n' "$1" >&2
|
|
19
|
+
FAIL=1
|
|
20
|
+
fi
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
require_key() {
|
|
24
|
+
file=$1
|
|
25
|
+
key=$2
|
|
26
|
+
|
|
27
|
+
if [ ! -f "$file" ]; then
|
|
28
|
+
return
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
if ! grep -Eq "^${key}:[[:space:]]*" "$file"; then
|
|
32
|
+
printf 'Missing key %s in %s\n' "$key" "$file" >&2
|
|
33
|
+
FAIL=1
|
|
34
|
+
fi
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
warn_key() {
|
|
38
|
+
file=$1
|
|
39
|
+
key=$2
|
|
40
|
+
|
|
41
|
+
if [ ! -f "$file" ]; then
|
|
42
|
+
return
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
if ! grep -Eq "^${key}:[[:space:]]*" "$file"; then
|
|
46
|
+
printf 'WARN: Missing key %s in %s\n' "$key" "$file" >&2
|
|
47
|
+
WARN=1
|
|
48
|
+
fi
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
warn_empty_dir() {
|
|
52
|
+
dir=$1
|
|
53
|
+
label=$2
|
|
54
|
+
|
|
55
|
+
if [ -d "$dir" ]; then
|
|
56
|
+
if [ -z "$(ls -A "$dir" 2>/dev/null)" ]; then
|
|
57
|
+
printf 'WARN: %s is empty\n' "$label" >&2
|
|
58
|
+
WARN=1
|
|
59
|
+
fi
|
|
60
|
+
fi
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
require_dir "$ROOT/docs"
|
|
64
|
+
require_dir "$ROOT/skills"
|
|
65
|
+
require_dir "$ROOT/knowledge"
|
|
66
|
+
require_dir "$ROOT/templates"
|
|
67
|
+
require_dir "$ROOT/adapters"
|
|
68
|
+
require_dir "$ROOT/scripts"
|
|
69
|
+
|
|
70
|
+
for layer in global project working; do
|
|
71
|
+
require_dir "$ROOT/knowledge/$layer"
|
|
72
|
+
done
|
|
73
|
+
|
|
74
|
+
for skill_dir in "$ROOT"/skills/*; do
|
|
75
|
+
[ -d "$skill_dir" ] || continue
|
|
76
|
+
|
|
77
|
+
require_file "$skill_dir/meta.yaml"
|
|
78
|
+
require_file "$skill_dir/SKILL.md"
|
|
79
|
+
require_file "$skill_dir/examples.md"
|
|
80
|
+
require_dir "$skill_dir/references"
|
|
81
|
+
|
|
82
|
+
require_key "$skill_dir/meta.yaml" "name"
|
|
83
|
+
require_key "$skill_dir/meta.yaml" "version"
|
|
84
|
+
require_key "$skill_dir/meta.yaml" "category"
|
|
85
|
+
require_key "$skill_dir/meta.yaml" "summary"
|
|
86
|
+
|
|
87
|
+
warn_key "$skill_dir/meta.yaml" "summary_vi"
|
|
88
|
+
warn_key "$skill_dir/meta.yaml" "triggers"
|
|
89
|
+
warn_key "$skill_dir/meta.yaml" "related_skills"
|
|
90
|
+
|
|
91
|
+
warn_empty_dir "$skill_dir/references" "$skill_dir/references"
|
|
92
|
+
done
|
|
93
|
+
|
|
94
|
+
if [ "$WARN" -ne 0 ]; then
|
|
95
|
+
printf '\nWarnings found.\n' >&2
|
|
96
|
+
fi
|
|
97
|
+
|
|
98
|
+
if [ "$FAIL" -ne 0 ]; then
|
|
99
|
+
printf 'Skill library validation failed.\n' >&2
|
|
100
|
+
exit 1
|
|
101
|
+
fi
|
|
102
|
+
|
|
103
|
+
printf 'Skill library validation passed.\n'
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Brainstorming
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Refine a fuzzy request into a concrete direction that is clear enough to plan.
|
|
6
|
+
|
|
7
|
+
## When To Use
|
|
8
|
+
|
|
9
|
+
Load this skill when:
|
|
10
|
+
|
|
11
|
+
- the user has an idea but not a settled approach
|
|
12
|
+
- the scope or success criteria are still unclear
|
|
13
|
+
- multiple reasonable options exist and the tradeoff matters
|
|
14
|
+
- starting implementation immediately would force too many assumptions
|
|
15
|
+
|
|
16
|
+
Skip this skill and go directly to `planning` when the request is already specific: a named feature with clear scope, a known code path, or an explicit task with acceptance criteria.
|
|
17
|
+
|
|
18
|
+
## Workflow
|
|
19
|
+
|
|
20
|
+
1. Restate the request in plain language.
|
|
21
|
+
2. Ask focused questions that reduce ambiguity quickly.
|
|
22
|
+
3. Surface the most important tradeoffs, not every possible one.
|
|
23
|
+
4. Propose one or two viable directions with clear consequences.
|
|
24
|
+
5. Lock the current best direction, scope boundary, and open questions.
|
|
25
|
+
6. End with a handoff into `planning` when the request is concrete enough.
|
|
26
|
+
|
|
27
|
+
## Output Format
|
|
28
|
+
|
|
29
|
+
- clarified goal
|
|
30
|
+
- constraints and assumptions
|
|
31
|
+
- viable options considered
|
|
32
|
+
- recommended direction
|
|
33
|
+
- unresolved questions
|
|
34
|
+
- next skill to invoke
|
|
35
|
+
|
|
36
|
+
## Red Flags
|
|
37
|
+
|
|
38
|
+
- diving into file-level implementation too early
|
|
39
|
+
- asking many questions that do not change the decision
|
|
40
|
+
- presenting vague options with no tradeoff explanation
|
|
41
|
+
- pretending the problem is settled when key constraints are still unknown
|
|
42
|
+
|
|
43
|
+
## Done Criteria
|
|
44
|
+
|
|
45
|
+
This skill is complete when all three of the following are written down explicitly: the recommended direction, at least one key constraint, and the scope boundary. At that point, `planning` can proceed without inventing missing requirements.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Examples
|
|
2
|
+
|
|
3
|
+
## Example 1
|
|
4
|
+
|
|
5
|
+
User request:
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
I want better auth in the admin area.
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Expected result:
|
|
12
|
+
|
|
13
|
+
- clarify whether this means SSO, MFA, RBAC changes, or session hardening
|
|
14
|
+
- identify the real goal and constraints
|
|
15
|
+
- end with a chosen direction that can be planned
|
|
16
|
+
|
|
17
|
+
## Example 2
|
|
18
|
+
|
|
19
|
+
User request:
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
Help me think through how we should add an audit log.
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Expected result:
|
|
26
|
+
|
|
27
|
+
- narrow the audit scope, retention, and actor model
|
|
28
|
+
- compare one or two realistic approaches
|
|
29
|
+
- hand off to planning once the direction is concrete
|
|
30
|
+
|
|
31
|
+
## Example 3 — Sample completed output
|
|
32
|
+
|
|
33
|
+
User request:
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
I want better auth in the admin area.
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Completed output
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
Clarified goal: Strengthen authentication for the admin panel to reduce unauthorized access risk.
|
|
43
|
+
|
|
44
|
+
Constraints and assumptions:
|
|
45
|
+
- Admin panel is a React SPA; auth goes through the existing session cookie flow.
|
|
46
|
+
- No budget for a third-party IdP at this stage.
|
|
47
|
+
- Must not break the existing user login flow.
|
|
48
|
+
|
|
49
|
+
Viable options considered:
|
|
50
|
+
1. Add MFA via TOTP — moderate effort, strong security gain.
|
|
51
|
+
2. Add IP allowlist — low effort, but brittle for remote teams.
|
|
52
|
+
3. Replace session cookies with short-lived JWTs — high effort, marginal gain for this use case.
|
|
53
|
+
|
|
54
|
+
Recommended direction: Add TOTP-based MFA for admin users only. It provides the highest security gain within the current architecture without requiring external services.
|
|
55
|
+
|
|
56
|
+
Unresolved questions:
|
|
57
|
+
- Should MFA be mandatory or opt-in at first?
|
|
58
|
+
- Recovery flow: backup codes or email fallback?
|
|
59
|
+
|
|
60
|
+
Next skill: planning
|
|
61
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
name: brainstorming
|
|
2
|
+
version: 0.1.0
|
|
3
|
+
category: discovery
|
|
4
|
+
summary: Turn a rough idea or underspecified request into a concrete, reviewable direction before planning begins.
|
|
5
|
+
summary_vi: Biến ý tưởng thô hoặc request chưa rõ thành hướng đi cụ thể, có thể review, trước khi bắt đầu lập plan.
|
|
6
|
+
triggers:
|
|
7
|
+
- help me think this through
|
|
8
|
+
- explore the approach first
|
|
9
|
+
- the request is vague or underspecified
|
|
10
|
+
inputs:
|
|
11
|
+
- rough idea
|
|
12
|
+
- user goals and constraints
|
|
13
|
+
outputs:
|
|
14
|
+
- clarified goal
|
|
15
|
+
- key decisions
|
|
16
|
+
- open questions
|
|
17
|
+
- handoff into planning
|
|
18
|
+
constraints:
|
|
19
|
+
- avoid jumping into code or low-level implementation too early
|
|
20
|
+
- keep the discussion concrete and decision-oriented
|
|
21
|
+
related_skills:
|
|
22
|
+
- using-skills
|
|
23
|
+
- planning
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
## Clarified Goal
|
|
2
|
+
|
|
3
|
+
- What the user is actually trying to achieve
|
|
4
|
+
|
|
5
|
+
## Constraints
|
|
6
|
+
|
|
7
|
+
- Required constraints:
|
|
8
|
+
- Assumptions:
|
|
9
|
+
|
|
10
|
+
## Options
|
|
11
|
+
|
|
12
|
+
1. Option one and its tradeoff
|
|
13
|
+
2. Option two and its tradeoff
|
|
14
|
+
|
|
15
|
+
## Recommended Direction
|
|
16
|
+
|
|
17
|
+
- Chosen direction:
|
|
18
|
+
- Why:
|
|
19
|
+
|
|
20
|
+
## Open Questions
|
|
21
|
+
|
|
22
|
+
- Remaining unresolved item
|
|
23
|
+
|
|
24
|
+
## Handoff
|
|
25
|
+
|
|
26
|
+
- Next skill to invoke:
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Bug Triage
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Investigate failures methodically so the next fix is based on evidence instead of guesswork.
|
|
6
|
+
|
|
7
|
+
## When To Use
|
|
8
|
+
|
|
9
|
+
Load this skill when:
|
|
10
|
+
|
|
11
|
+
- a user reports a bug or regression
|
|
12
|
+
- a test starts failing without obvious cause
|
|
13
|
+
- production behavior no longer matches the intended behavior
|
|
14
|
+
|
|
15
|
+
## Workflow
|
|
16
|
+
|
|
17
|
+
1. Restate the symptom in plain language.
|
|
18
|
+
2. Attempt to reproduce the issue or explain why reproduction is blocked.
|
|
19
|
+
3. Narrow the problem:
|
|
20
|
+
- identify the code path involved
|
|
21
|
+
- inspect recent behavior changes or assumptions
|
|
22
|
+
- check inputs, state, timing, or environment differences
|
|
23
|
+
4. Form the smallest credible root-cause hypothesis.
|
|
24
|
+
5. Define the minimal next change or experiment that would confirm the cause.
|
|
25
|
+
6. Add or recommend regression coverage when the cause is clear.
|
|
26
|
+
|
|
27
|
+
## Output Format
|
|
28
|
+
|
|
29
|
+
- symptom summary
|
|
30
|
+
- reproduction status
|
|
31
|
+
- suspected root cause
|
|
32
|
+
- impacted area
|
|
33
|
+
- proposed next change
|
|
34
|
+
- confidence level
|
|
35
|
+
|
|
36
|
+
## Red Flags
|
|
37
|
+
|
|
38
|
+
- proposing a rewrite before understanding the current failure
|
|
39
|
+
- changing many files before narrowing the cause
|
|
40
|
+
- ignoring whether the behavior is reproducible
|
|
41
|
+
- treating logs or stack traces as proof without checking the code path
|
|
42
|
+
|
|
43
|
+
## Done Criteria
|
|
44
|
+
|
|
45
|
+
This skill is complete when the next fix or experiment is specific, minimal, and tied to a clearly stated hypothesis.
|
|
46
|
+
|
|
47
|
+
If the fix is non-trivial or touches more than one area, hand off to `planning` before moving to `feature-delivery`.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Examples
|
|
2
|
+
|
|
3
|
+
## Example 1
|
|
4
|
+
|
|
5
|
+
User request:
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
Users get logged out randomly after the deploy.
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Expected result:
|
|
12
|
+
|
|
13
|
+
- restate the symptom and affected surface area
|
|
14
|
+
- inspect auth session code path and recent deploy changes
|
|
15
|
+
- identify one or two likely causes before editing unrelated modules
|
|
16
|
+
|
|
17
|
+
Sample completed output:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
Symptom: Users with active sessions are being logged out unexpectedly after the v2.4.1 deploy.
|
|
21
|
+
|
|
22
|
+
Reproduction: Confirmed on staging — session is invalidated ~10 minutes after login even without user action.
|
|
23
|
+
|
|
24
|
+
Root-Cause Hypothesis:
|
|
25
|
+
- Most likely: SESSION_TTL env var was changed from 3600 to 600 in the deploy config
|
|
26
|
+
- Evidence: session.ts reads process.env.SESSION_TTL; config diff shows the change
|
|
27
|
+
- Uncertainty: not yet confirmed whether all env changes were intentional
|
|
28
|
+
|
|
29
|
+
Next Change: Restore SESSION_TTL to 3600 in production config and redeploy
|
|
30
|
+
|
|
31
|
+
Confidence: high
|
|
32
|
+
|
|
33
|
+
Handoff: feature-delivery (fix is already clear and local)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Example 2
|
|
37
|
+
|
|
38
|
+
User request:
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
This integration test started failing with a timeout.
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Expected result:
|
|
45
|
+
|
|
46
|
+
- determine where the timeout occurs
|
|
47
|
+
- distinguish between slow setup, deadlock, or missing response
|
|
48
|
+
- propose the smallest confirming step
|
|
49
|
+
|
|
50
|
+
### Completed output
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
Symptom: Integration test `test/integration/payment.test.ts` times out after 30s on the "processes valid refund" case.
|
|
54
|
+
|
|
55
|
+
Reproduction: Confirmed locally — `npm test -- payment` hangs at step 3/5 of the refund flow test.
|
|
56
|
+
|
|
57
|
+
Root-Cause Hypothesis:
|
|
58
|
+
- Most likely: The mock payment gateway is not responding to the refund callback, causing the test to wait indefinitely
|
|
59
|
+
- Evidence: The test uses a mock server on port 9999; logs show the request is sent but no response is received
|
|
60
|
+
- Alternative: A database connection pool exhaustion from a previous test not cleaning up properly
|
|
61
|
+
- Uncertainty: need to check if the mock server is started before the refund call
|
|
62
|
+
|
|
63
|
+
Confirming Step: Add a 5s timeout to the mock refund endpoint and log whether it receives the request. If the mock receives it but doesn't respond, the mock handler is missing the refund route.
|
|
64
|
+
|
|
65
|
+
Confidence: medium
|
|
66
|
+
|
|
67
|
+
Handoff: planning (once root cause is confirmed, the fix is likely a one-line mock handler addition)
|
|
68
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: bug-triage
|
|
2
|
+
version: 0.1.0
|
|
3
|
+
category: debugging
|
|
4
|
+
summary: Turn a bug report or failure symptom into a grounded root-cause hypothesis and a minimal next fix.
|
|
5
|
+
summary_vi: Biến bug report hoặc triệu chứng lỗi thành giả thuyết nguyên nhân gốc có căn cứ và bước sửa tối thiểu tiếp theo.
|
|
6
|
+
triggers:
|
|
7
|
+
- investigate this error
|
|
8
|
+
- debug this regression
|
|
9
|
+
- failing test or production issue
|
|
10
|
+
inputs:
|
|
11
|
+
- bug report
|
|
12
|
+
- logs or stack traces when available
|
|
13
|
+
- code paths involved in the failure
|
|
14
|
+
outputs:
|
|
15
|
+
- reproduction status
|
|
16
|
+
- root-cause hypothesis
|
|
17
|
+
- minimal next change
|
|
18
|
+
constraints:
|
|
19
|
+
- prove or narrow the cause before broad refactors
|
|
20
|
+
- call out confidence and uncertainty explicitly
|
|
21
|
+
related_skills:
|
|
22
|
+
- using-skills
|
|
23
|
+
- planning
|
|
24
|
+
- feature-delivery
|
|
25
|
+
- verification-before-completion
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
## Symptom
|
|
2
|
+
|
|
3
|
+
- What is failing and how it shows up
|
|
4
|
+
|
|
5
|
+
## Reproduction
|
|
6
|
+
|
|
7
|
+
- reproduced: yes or no
|
|
8
|
+
- notes:
|
|
9
|
+
|
|
10
|
+
## Root-Cause Hypothesis
|
|
11
|
+
|
|
12
|
+
- most likely cause:
|
|
13
|
+
- evidence:
|
|
14
|
+
- uncertainty:
|
|
15
|
+
|
|
16
|
+
## Next Change
|
|
17
|
+
|
|
18
|
+
- smallest fix or confirming experiment
|
|
19
|
+
|
|
20
|
+
## Confidence
|
|
21
|
+
|
|
22
|
+
- low, medium, or high
|
|
23
|
+
|
|
24
|
+
## Handoff
|
|
25
|
+
|
|
26
|
+
- Next skill: planning (if fix is non-trivial) or feature-delivery (if fix is already clear)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Code Review
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Review code changes with a risk-first mindset.
|
|
6
|
+
|
|
7
|
+
## When To Use
|
|
8
|
+
|
|
9
|
+
Load this skill when the user asks for a review of a diff, PR, commit range, or changed files.
|
|
10
|
+
|
|
11
|
+
## Workflow
|
|
12
|
+
|
|
13
|
+
1. Inspect the full set of relevant changes.
|
|
14
|
+
2. Identify behavior changes and impacted code paths.
|
|
15
|
+
3. Look for:
|
|
16
|
+
- correctness bugs
|
|
17
|
+
- regressions
|
|
18
|
+
- missing validation or edge-case handling
|
|
19
|
+
- missing or misleading tests
|
|
20
|
+
4. Return findings ordered by severity, with file references.
|
|
21
|
+
5. Keep summaries brief and put them after the findings.
|
|
22
|
+
|
|
23
|
+
## Output Format
|
|
24
|
+
|
|
25
|
+
- findings first, ordered by severity
|
|
26
|
+
- file and line references when available
|
|
27
|
+
- open questions or assumptions
|
|
28
|
+
- short summary or residual risk note
|
|
29
|
+
|
|
30
|
+
## Red Flags
|
|
31
|
+
|
|
32
|
+
- reviewing only the latest file and ignoring related changes
|
|
33
|
+
- focusing on style before correctness
|
|
34
|
+
- vague comments with no user-visible impact
|
|
35
|
+
- claiming safety without considering missing tests or migration risk
|
|
36
|
+
|
|
37
|
+
## Done Criteria
|
|
38
|
+
|
|
39
|
+
This skill is complete when every finding includes a severity, a file and line reference where possible, and a plain-language statement of user-visible impact. The residual risk field must be populated even if no blocking issues were found.
|
|
40
|
+
|
|
41
|
+
If blocking issues are found, hand off to `bug-triage` or `planning` before the change proceeds.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Examples
|
|
2
|
+
|
|
3
|
+
## Example 1
|
|
4
|
+
|
|
5
|
+
User request:
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
Please review this auth refactor.
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Expected result:
|
|
12
|
+
|
|
13
|
+
- inspect all changed auth paths
|
|
14
|
+
- identify any behavior regressions or missing tests
|
|
15
|
+
- report findings before giving a summary
|
|
16
|
+
|
|
17
|
+
Sample completed output:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
Findings:
|
|
21
|
+
|
|
22
|
+
1. [blocking] src/auth/session.ts:47 — The old token rotation logic has been removed.
|
|
23
|
+
Existing sessions from before the deploy will have tokens that no longer validate.
|
|
24
|
+
This will silently log out all active users on deploy.
|
|
25
|
+
|
|
26
|
+
2. [major] src/auth/middleware.ts:112 — The JWT expiry check now uses Date.now() instead
|
|
27
|
+
of the previous clock-skew-tolerant comparison. Tokens issued within 5 seconds of
|
|
28
|
+
expiry may be wrongly rejected under load.
|
|
29
|
+
|
|
30
|
+
3. [minor] src/auth/local.ts:88 — The error message on failed login now leaks whether
|
|
31
|
+
the email exists. Previously it returned a generic message.
|
|
32
|
+
|
|
33
|
+
Open Questions:
|
|
34
|
+
- Was token rotation intentionally removed? If yes, existing sessions need to be
|
|
35
|
+
invalidated before deploy.
|
|
36
|
+
|
|
37
|
+
Residual Risk: If finding 1 is acknowledged and existing sessions are cleared before
|
|
38
|
+
deploy, the remaining issues are manageable. Blocking on finding 1.
|
|
39
|
+
|
|
40
|
+
Handoff: planning (finding 1 requires a migration step before shipping)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Example 2
|
|
44
|
+
|
|
45
|
+
User request:
|
|
46
|
+
|
|
47
|
+
```text
|
|
48
|
+
Review this PR like a senior engineer.
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Expected result:
|
|
52
|
+
|
|
53
|
+
- focus on bugs, risks, and rollout issues
|
|
54
|
+
- avoid spending most of the review on style comments
|
|
55
|
+
|
|
56
|
+
### Completed output
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
Findings:
|
|
60
|
+
|
|
61
|
+
1. [major] src/api/users.ts:34 — The pagination offset is parsed with parseInt() but has no validation for negative values.
|
|
62
|
+
A client sending `?offset=-1` would cause an out-of-bounds database query. Should clamp to 0 or reject.
|
|
63
|
+
|
|
64
|
+
2. [minor] src/utils/format.ts:12 — The date formatter uses the local timezone instead of UTC.
|
|
65
|
+
This could cause inconsistent dates for users in different timezones. Existing API docs specify UTC.
|
|
66
|
+
|
|
67
|
+
3. [info] Package.json adds 3 new dependencies. Two are well-known (lodash, date-fns), but `tiny-logger` has only 12 GitHub stars and no published security audit.
|
|
68
|
+
Worth verifying before merging.
|
|
69
|
+
|
|
70
|
+
Open Questions:
|
|
71
|
+
- Was the offset validation intentionally deferred? If so, it should be tracked as a follow-up ticket.
|
|
72
|
+
- Is the timezone change intentional or an oversight?
|
|
73
|
+
|
|
74
|
+
Residual Risk: Finding 1 could cause runtime errors under adversarial input. Should be fixed before merge.
|
|
75
|
+
|
|
76
|
+
Handoff: feature-delivery (fix offset validation before merging)
|
|
77
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: code-review
|
|
2
|
+
version: 0.1.0
|
|
3
|
+
category: review
|
|
4
|
+
summary: Review changes for bugs, regressions, and missing tests before style or polish comments.
|
|
5
|
+
summary_vi: Review thay đổi tìm bug, regression, và test thiếu trước khi comment về style hoặc polish.
|
|
6
|
+
triggers:
|
|
7
|
+
- review this PR
|
|
8
|
+
- review these changes
|
|
9
|
+
- look for risks before merge
|
|
10
|
+
inputs:
|
|
11
|
+
- diff or changed files
|
|
12
|
+
- relevant tests or docs when needed
|
|
13
|
+
outputs:
|
|
14
|
+
- severity-ranked findings
|
|
15
|
+
- open questions
|
|
16
|
+
- residual risk notes
|
|
17
|
+
constraints:
|
|
18
|
+
- findings first
|
|
19
|
+
- avoid style-only comments unless they hide a real risk
|
|
20
|
+
related_skills:
|
|
21
|
+
- using-skills
|
|
22
|
+
- bug-triage
|
|
23
|
+
- verification-before-completion
|
|
24
|
+
- planning
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Code Review Checklist
|
|
2
|
+
|
|
3
|
+
Work through this list before returning findings.
|
|
4
|
+
|
|
5
|
+
## Behavior
|
|
6
|
+
|
|
7
|
+
- [ ] Does the change alter any existing behavior that callers depend on?
|
|
8
|
+
- [ ] Are edge cases (empty input, nil/null, concurrency, off-by-one) handled?
|
|
9
|
+
- [ ] Are validation rules still enforced after the change?
|
|
10
|
+
|
|
11
|
+
## Regressions
|
|
12
|
+
|
|
13
|
+
- [ ] Could any existing test now fail silently?
|
|
14
|
+
- [ ] Were any assumptions about data shape, ordering, or timing changed?
|
|
15
|
+
|
|
16
|
+
## Tests
|
|
17
|
+
|
|
18
|
+
- [ ] Do the tests actually prove the intended behavior?
|
|
19
|
+
- [ ] Is there a test that would catch a regression in this exact change?
|
|
20
|
+
- [ ] Are any tests just checking implementation details rather than outcomes?
|
|
21
|
+
|
|
22
|
+
## Safety
|
|
23
|
+
|
|
24
|
+
- [ ] Are there authorization or access-control implications?
|
|
25
|
+
- [ ] Are there data-loss, data-corruption, or migration risks?
|
|
26
|
+
- [ ] Are there performance cliffs under realistic load?
|
|
27
|
+
|
|
28
|
+
## Output format
|
|
29
|
+
|
|
30
|
+
Every finding must include:
|
|
31
|
+
|
|
32
|
+
- severity: blocking, major, or minor
|
|
33
|
+
- location: file and line reference when available
|
|
34
|
+
- impact: one sentence stating the user-visible consequence
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Docs Writer
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Keep documentation aligned with how the system actually works.
|
|
6
|
+
|
|
7
|
+
## When To Use
|
|
8
|
+
|
|
9
|
+
Load this skill when writing or updating:
|
|
10
|
+
|
|
11
|
+
- README files
|
|
12
|
+
- onboarding docs
|
|
13
|
+
- runbooks
|
|
14
|
+
- API usage notes
|
|
15
|
+
- project operating instructions
|
|
16
|
+
|
|
17
|
+
## Workflow
|
|
18
|
+
|
|
19
|
+
1. Confirm the target audience and document purpose.
|
|
20
|
+
2. Verify current behavior from source, commands, or config before writing.
|
|
21
|
+
3. Update only the sections that need to change.
|
|
22
|
+
4. Prefer concise instructions, examples, and commands over long prose.
|
|
23
|
+
5. Call out assumptions or areas that still need verification.
|
|
24
|
+
|
|
25
|
+
## Output Format
|
|
26
|
+
|
|
27
|
+
- target document
|
|
28
|
+
- audience
|
|
29
|
+
- what changed
|
|
30
|
+
- source of truth used
|
|
31
|
+
- assumptions or follow-ups
|
|
32
|
+
|
|
33
|
+
## Red Flags
|
|
34
|
+
|
|
35
|
+
- copying old docs forward without checking the current code
|
|
36
|
+
- writing broad architecture claims without source verification
|
|
37
|
+
- mixing user instructions with internal implementation details unnecessarily
|
|
38
|
+
- leaving stale commands or paths in place
|
|
39
|
+
|
|
40
|
+
## Done Criteria
|
|
41
|
+
|
|
42
|
+
This skill is complete when the updated document has been verified against the actual source, all stale commands or paths have been corrected or removed, and the "Verification" field in the output names the specific files or commands that were checked.
|