@mohammadhprp/system-prompt 0.11.0 → 0.11.2
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/framework/agents/backend-architect.md +1 -1
- package/framework/commands/commit.md +0 -3
- package/framework/mcps/figma-mcp-go/README.md +0 -1
- package/framework/mcps/gitlab-mcp/README.md +0 -1
- package/framework/mcps/jira-mcp/README.md +0 -1
- package/framework/mcps/laravel-boost/README.md +0 -1
- package/framework/mcps/notion-mcp/README.md +0 -1
- package/framework/mcps/supabase-mcp/README.md +0 -1
- package/framework/plugins/opencode-goal-plugin/README.md +0 -1
- package/framework/references/standards/api.md +0 -1
- package/framework/references/standards/architecture.md +0 -1
- package/framework/references/standards/database.md +0 -1
- package/framework/references/standards/debugging.md +0 -1
- package/framework/references/standards/documentation.md +0 -2
- package/framework/references/standards/logging.md +0 -1
- package/framework/references/standards/naming.md +0 -1
- package/framework/references/standards/observability.md +0 -1
- package/framework/references/standards/performance.md +0 -1
- package/framework/references/standards/pull-requests.md +0 -1
- package/framework/references/standards/security.md +0 -1
- package/framework/references/standards/testing.md +0 -1
- package/framework/skills/README.md +15 -3
- package/framework/skills/codenavi/SKILL.md +306 -0
- package/framework/skills/codenavi/examples.md +33 -0
- package/framework/skills/codenavi/references/coding-principles.md +143 -0
- package/framework/skills/codenavi/references/notebook-spec.md +171 -0
- package/framework/skills/create-adr/SKILL.md +429 -0
- package/framework/skills/create-adr/examples.md +35 -0
- package/framework/skills/docs-writer/SKILL.md +39 -0
- package/framework/skills/docs-writer/examples.md +34 -0
- package/framework/skills/docs-writer/references/style-guide.md +72 -0
- package/framework/skills/frontend-design/SKILL.md +55 -0
- package/framework/skills/frontend-design/examples.md +45 -0
- package/framework/skills/humanizer/SKILL.md +412 -0
- package/framework/skills/humanizer/examples.md +46 -0
- package/framework/skills/learning-opportunities/SKILL.md +140 -0
- package/framework/skills/learning-opportunities/examples.md +34 -0
- package/framework/skills/learning-opportunities/references/PRINCIPLES.md +42 -0
- package/framework/skills/perf-web-optimization/SKILL.md +163 -0
- package/framework/skills/perf-web-optimization/examples.md +35 -0
- package/framework/skills/perf-web-optimization/references/bundle-optimization.md +180 -0
- package/framework/skills/perf-web-optimization/references/core-web-vitals.md +154 -0
- package/framework/skills/perf-web-optimization/references/image-optimization.md +170 -0
- package/framework/skills/security-best-practices/LICENSE.txt +201 -0
- package/framework/skills/security-best-practices/SKILL.md +89 -0
- package/framework/skills/security-best-practices/examples.md +35 -0
- package/framework/skills/security-best-practices/references/golang-general-backend-security.md +988 -0
- package/framework/skills/security-best-practices/references/javascript-express-web-server-security.md +1151 -0
- package/framework/skills/security-best-practices/references/javascript-general-web-frontend-security.md +725 -0
- package/framework/skills/security-best-practices/references/javascript-jquery-web-frontend-security.md +672 -0
- package/framework/skills/security-best-practices/references/javascript-typescript-nextjs-web-server-security.md +1138 -0
- package/framework/skills/security-best-practices/references/javascript-typescript-react-web-frontend-security.md +975 -0
- package/framework/skills/security-best-practices/references/javascript-typescript-vue-web-frontend-security.md +789 -0
- package/framework/skills/security-best-practices/references/python-django-web-server-security.md +880 -0
- package/framework/skills/security-best-practices/references/python-fastapi-web-server-security.md +1030 -0
- package/framework/skills/security-best-practices/references/python-flask-web-server-security.md +835 -0
- package/framework/skills/sentry/SKILL.md +127 -0
- package/framework/skills/sentry/examples.md +34 -0
- package/framework/skills/sentry/scripts/sentry_api.py +238 -0
- package/framework/skills/show-me/SKILL.md +127 -0
- package/framework/skills/show-me/examples.md +78 -0
- package/framework/skills/spec-driven-eval/SKILL.md +341 -0
- package/framework/skills/spec-driven-eval/examples.md +35 -0
- package/framework/skills/spec-driven-eval/references/quickstart.md +118 -0
- package/framework/skills/spec-driven-eval/references/reference.md +295 -0
- package/framework/skills/technical-design-doc-creator/README.md +411 -0
- package/framework/skills/technical-design-doc-creator/SKILL.md +1484 -0
- package/framework/skills/technical-design-doc-creator/examples.md +35 -0
- package/framework/skills/tlc-spec-driven/SKILL.md +184 -0
- package/framework/skills/tlc-spec-driven/examples.md +34 -0
- package/framework/skills/tlc-spec-driven/references/code-analysis.md +98 -0
- package/framework/skills/tlc-spec-driven/references/coding-principles.md +72 -0
- package/framework/skills/tlc-spec-driven/references/context-limits.md +31 -0
- package/framework/skills/tlc-spec-driven/references/design.md +199 -0
- package/framework/skills/tlc-spec-driven/references/discuss.md +159 -0
- package/framework/skills/tlc-spec-driven/references/implement.md +436 -0
- package/framework/skills/tlc-spec-driven/references/lessons.md +115 -0
- package/framework/skills/tlc-spec-driven/references/memory.md +144 -0
- package/framework/skills/tlc-spec-driven/references/specify.md +228 -0
- package/framework/skills/tlc-spec-driven/references/sub-agents.md +147 -0
- package/framework/skills/tlc-spec-driven/references/tasks.md +451 -0
- package/framework/skills/tlc-spec-driven/references/validate.md +355 -0
- package/framework/skills/tlc-spec-driven/scripts/check_commit.py +115 -0
- package/framework/skills/tlc-spec-driven/scripts/lessons.py +412 -0
- package/framework/skills/tlc-spec-driven/scripts/validate_spec.py +260 -0
- package/framework/skills/tlc-spec-driven/scripts/validate_state.py +162 -0
- package/framework/skills/tlc-spec-driven/scripts/validate_tasks.py +251 -0
- package/framework/skills/web-design-guidelines/SKILL.md +65 -0
- package/framework/skills/web-design-guidelines/examples.md +32 -0
- package/framework/skills/web-design-guidelines/references/guideline.md +174 -0
- package/package.json +1 -1
- package/src/catalog.js +15 -3
- package/src/installer.js +66 -1
- package/framework/skills/backend-engineer/SKILL.md +0 -76
- package/framework/skills/backend-engineer/examples.md +0 -31
- package/framework/skills/documentation/SKILL.md +0 -74
- package/framework/skills/documentation/examples.md +0 -31
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# Coding Principles
|
|
2
|
+
|
|
3
|
+
Read this file during the Execute phase when implementing changes.
|
|
4
|
+
These principles reduce common AI coding mistakes and ensure
|
|
5
|
+
consistent, high-quality output.
|
|
6
|
+
|
|
7
|
+
## 1. Think Before Coding
|
|
8
|
+
|
|
9
|
+
Before writing any code:
|
|
10
|
+
|
|
11
|
+
- State your assumptions explicitly. If uncertain, ask.
|
|
12
|
+
- If multiple approaches exist, present them with tradeoffs.
|
|
13
|
+
- If a simpler approach exists, say so. Push back when warranted.
|
|
14
|
+
- If something is unclear, stop. Name what's confusing. Ask.
|
|
15
|
+
- If the developer's approach seems wrong, say so constructively.
|
|
16
|
+
Don't be sycophantic — honesty prevents bugs.
|
|
17
|
+
|
|
18
|
+
## 2. Simplicity First
|
|
19
|
+
|
|
20
|
+
Write the minimum code that solves the problem.
|
|
21
|
+
|
|
22
|
+
- No features beyond what was asked.
|
|
23
|
+
- No abstractions for single-use code.
|
|
24
|
+
- No "flexibility" or "configurability" that wasn't requested.
|
|
25
|
+
- No error handling for impossible scenarios.
|
|
26
|
+
- No speculative optimization.
|
|
27
|
+
- If you wrote 200 lines and it could be 50, rewrite it.
|
|
28
|
+
|
|
29
|
+
The test: "Would a senior engineer say this is overcomplicated?"
|
|
30
|
+
If yes, simplify.
|
|
31
|
+
|
|
32
|
+
## 3. Surgical Changes
|
|
33
|
+
|
|
34
|
+
When editing existing code:
|
|
35
|
+
|
|
36
|
+
- Don't "improve" adjacent code, comments, or formatting.
|
|
37
|
+
- Don't refactor things that aren't broken.
|
|
38
|
+
- Match existing style, even if you'd do it differently.
|
|
39
|
+
- If you notice unrelated issues, mention them — don't fix them.
|
|
40
|
+
|
|
41
|
+
When your changes create orphans:
|
|
42
|
+
|
|
43
|
+
- Remove imports, variables, and functions that YOUR changes made unused.
|
|
44
|
+
- Don't remove pre-existing dead code unless asked.
|
|
45
|
+
|
|
46
|
+
The test: Every changed line traces directly to the mission objective.
|
|
47
|
+
|
|
48
|
+
## 4. Goal-Driven Execution
|
|
49
|
+
|
|
50
|
+
Transform vague tasks into verifiable goals:
|
|
51
|
+
|
|
52
|
+
- "Add validation" → "Write tests for invalid inputs, then make them pass"
|
|
53
|
+
- "Fix the bug" → "Write a test that reproduces it, then make it pass"
|
|
54
|
+
- "Refactor X" → "Ensure tests pass before and after"
|
|
55
|
+
|
|
56
|
+
For multi-step tasks, state a brief plan with verification checkpoints.
|
|
57
|
+
Strong success criteria enable autonomous execution. Weak criteria
|
|
58
|
+
("make it work") require constant clarification — ask for better
|
|
59
|
+
criteria rather than guessing.
|
|
60
|
+
|
|
61
|
+
## 5. Respect the Codebase
|
|
62
|
+
|
|
63
|
+
You are a guest in this codebase. Act like it.
|
|
64
|
+
|
|
65
|
+
- Use the same naming conventions already in the project.
|
|
66
|
+
- Use the same file organization patterns.
|
|
67
|
+
- Use the same error handling approach.
|
|
68
|
+
- Use the same import style (named vs default, relative vs absolute).
|
|
69
|
+
- If the project uses semicolons, use semicolons. If it doesn't, don't.
|
|
70
|
+
|
|
71
|
+
If existing conventions conflict with language best practices, flag it
|
|
72
|
+
to the developer. Don't silently introduce a different convention.
|
|
73
|
+
|
|
74
|
+
## 6. Language Best Practices
|
|
75
|
+
|
|
76
|
+
Always follow the official best practices for the language and
|
|
77
|
+
frameworks in use. This means:
|
|
78
|
+
|
|
79
|
+
- Use idiomatic patterns for the language (e.g., list comprehensions
|
|
80
|
+
in Python, Optional chaining in TypeScript).
|
|
81
|
+
- Follow the official style guide when the project doesn't have its own.
|
|
82
|
+
- Use current, non-deprecated APIs and methods.
|
|
83
|
+
- Handle errors according to the language's conventions (try/catch,
|
|
84
|
+
Result types, error returns — whatever the ecosystem prefers).
|
|
85
|
+
|
|
86
|
+
Critical: Never rely on training memory for API signatures, method
|
|
87
|
+
parameters, or framework behavior. Always verify against current
|
|
88
|
+
documentation using the Knowledge Verification Chain:
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
.notebook/ → project docs → MCP Context7 → web search → flag as uncertain
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## 7. Dependencies and Imports
|
|
95
|
+
|
|
96
|
+
When adding new dependencies or imports:
|
|
97
|
+
|
|
98
|
+
- Check if the project already has a dependency that solves the
|
|
99
|
+
problem before adding a new one.
|
|
100
|
+
- Check the project's package manager and lockfile for existing
|
|
101
|
+
versions.
|
|
102
|
+
- If adding a new dependency, mention it to the developer with
|
|
103
|
+
rationale — never silently add packages.
|
|
104
|
+
- Match the project's import style and ordering conventions.
|
|
105
|
+
|
|
106
|
+
## 8. Error Handling
|
|
107
|
+
|
|
108
|
+
- Handle errors that can realistically occur.
|
|
109
|
+
- Don't add catch blocks for theoretically impossible scenarios.
|
|
110
|
+
- Use the project's existing error handling patterns.
|
|
111
|
+
- Error messages should be actionable — tell what happened and
|
|
112
|
+
what to do about it, not just "Something went wrong."
|
|
113
|
+
- Never swallow errors silently (empty catch blocks) unless
|
|
114
|
+
there's an explicit reason documented in a comment.
|
|
115
|
+
|
|
116
|
+
## 9. Testing
|
|
117
|
+
|
|
118
|
+
When tests are part of the mission:
|
|
119
|
+
|
|
120
|
+
- Write tests that verify behavior, not implementation details.
|
|
121
|
+
- Test the contract (input → output), not internal state.
|
|
122
|
+
- Name tests descriptively: "should reject expired coupon"
|
|
123
|
+
not "test1" or "coupon test."
|
|
124
|
+
- If modifying existing code, run existing tests first to
|
|
125
|
+
establish a baseline.
|
|
126
|
+
- If adding a bug fix, write a test that reproduces the bug
|
|
127
|
+
first, then fix it.
|
|
128
|
+
|
|
129
|
+
When tests are NOT part of the mission:
|
|
130
|
+
|
|
131
|
+
- Don't add tests unless asked.
|
|
132
|
+
- But DO mention if the change is risky and untested:
|
|
133
|
+
"This change affects the payment flow but there are no tests
|
|
134
|
+
covering this path. Consider adding tests for [specific cases]."
|
|
135
|
+
|
|
136
|
+
## 10. Comments
|
|
137
|
+
|
|
138
|
+
- Don't add comments that restate the code.
|
|
139
|
+
- Don't remove existing comments unless they're provably wrong.
|
|
140
|
+
- Add comments only for non-obvious business logic or workarounds.
|
|
141
|
+
- If you add a workaround, explain WHY it's necessary and link
|
|
142
|
+
to the relevant issue/ticket if available.
|
|
143
|
+
- Match the project's commenting style and language (human language).
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# .notebook/ Specification
|
|
2
|
+
|
|
3
|
+
Read this file when you need to create or update notes during the
|
|
4
|
+
Debrief phase, or when you need to understand the notebook format
|
|
5
|
+
during Briefing.
|
|
6
|
+
|
|
7
|
+
## Structure
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
.notebook/
|
|
11
|
+
├── INDEX.md # Always read first. Compact index of all notes.
|
|
12
|
+
├── auth-flow.md # Individual note files — flat by default.
|
|
13
|
+
├── error-handling.md
|
|
14
|
+
└── checkout-race.md
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Notes start flat in the root of `.notebook/`. When volume exceeds
|
|
18
|
+
~15 notes, organize into subdirectories by category:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
.notebook/
|
|
22
|
+
├── INDEX.md
|
|
23
|
+
├── flows/
|
|
24
|
+
│ ├── auth-flow.md
|
|
25
|
+
│ └── checkout-flow.md
|
|
26
|
+
├── patterns/
|
|
27
|
+
│ └── error-handling.md
|
|
28
|
+
├── gotchas/
|
|
29
|
+
│ └── checkout-race.md
|
|
30
|
+
└── domain/
|
|
31
|
+
└── coupon-types.md
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Categories:
|
|
35
|
+
|
|
36
|
+
- **flows** — How things work. Integrations, sequences, data paths.
|
|
37
|
+
- **patterns** — How things are done here. Conventions, recurring structures.
|
|
38
|
+
- **gotchas** — Traps. Bugs, quirks, counterintuitive behavior.
|
|
39
|
+
- **domain** — Business concepts. Terminology, rules, logic not obvious in code.
|
|
40
|
+
|
|
41
|
+
These categories are guidelines, not rigid rules. If a note fits
|
|
42
|
+
multiple categories, pick the primary one. If none fits, put it in root.
|
|
43
|
+
|
|
44
|
+
## INDEX.md Format
|
|
45
|
+
|
|
46
|
+
The index must be compact. One line per note. The AI reads this every
|
|
47
|
+
session, so every byte counts.
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
# .notebook
|
|
51
|
+
> Project intelligence — read before every mission
|
|
52
|
+
|
|
53
|
+
Last updated: 2026-02-22
|
|
54
|
+
|
|
55
|
+
- [auth-flow](auth-flow.md) — OAuth2 + refresh rotation | flow | auth, security
|
|
56
|
+
- [error-handling](error-handling.md) — Error boundaries + custom hook | pattern | react, errors
|
|
57
|
+
- [checkout-race](checkout-race.md) — Race condition on cart update | gotcha | checkout, cart
|
|
58
|
+
- [coupon-types](coupon-types.md) — Percentage vs fixed vs BOGO rules | domain | coupons, pricing
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Format per line:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
- [slug](path) — summary (max ~80 chars) | category | tags
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Rules for INDEX.md:
|
|
68
|
+
|
|
69
|
+
- Keep summaries short and scannable.
|
|
70
|
+
- Tags are lowercase, comma-separated. Use them for quick grep.
|
|
71
|
+
- Update `Last updated` whenever the index changes.
|
|
72
|
+
- If using subdirectories, paths include the folder: `flows/auth-flow.md`.
|
|
73
|
+
- Sort by most recently updated, not alphabetically.
|
|
74
|
+
|
|
75
|
+
## Individual Note Format
|
|
76
|
+
|
|
77
|
+
Notes are telegraphic. Think field notes, not documentation.
|
|
78
|
+
|
|
79
|
+
```markdown
|
|
80
|
+
# Auth Flow
|
|
81
|
+
> OAuth2 with refresh token rotation
|
|
82
|
+
|
|
83
|
+
Entry: `src/middleware/auth.ts:authMiddleware()` (L12)
|
|
84
|
+
Flow: middleware → `services/auth/jwt.ts:verify()` → `services/user/find.ts:findById()`
|
|
85
|
+
|
|
86
|
+
Refresh: `services/auth/refresh.ts:rotateToken()`
|
|
87
|
+
- Single-use tokens — consumed on refresh, new pair issued
|
|
88
|
+
- Stored in Redis with TTL (see `lib/redis.ts:sessionStore`)
|
|
89
|
+
|
|
90
|
+
OAuth providers: `config/oauth.ts` — Google, GitHub
|
|
91
|
+
- Each provider maps to `services/auth/oauth/[provider].ts`
|
|
92
|
+
|
|
93
|
+
Session: Redis-backed via `lib/redis.ts` (L45-62)
|
|
94
|
+
|
|
95
|
+
Updated: 2026-02-22
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Format principles
|
|
99
|
+
|
|
100
|
+
1. **Pointers, not copies.** Always reference as:
|
|
101
|
+
- `file/path.ts:functionName()` for functions
|
|
102
|
+
- `file/path.ts` (L10-25) for specific line ranges
|
|
103
|
+
- `file/path.ts:ClassName.method()` for class methods
|
|
104
|
+
Never paste code blocks into notes. Code changes; pointers
|
|
105
|
+
can be re-checked. Pasted code becomes stale lies.
|
|
106
|
+
|
|
107
|
+
2. **One concept per note.** If it needs scrolling, split it.
|
|
108
|
+
A note about auth flow should not also cover session management
|
|
109
|
+
unless they're inseparable.
|
|
110
|
+
|
|
111
|
+
3. **Minimal prose.** Use fragments, arrows, dashes. Not sentences.
|
|
112
|
+
"middleware → verify JWT → load user → attach to req" is better
|
|
113
|
+
than "The middleware first verifies the JWT token, then loads
|
|
114
|
+
the user from the database, and finally attaches it to the
|
|
115
|
+
request object."
|
|
116
|
+
|
|
117
|
+
4. **Always include Entry point.** Every note should have a clear
|
|
118
|
+
starting point so the reader knows where to begin exploring.
|
|
119
|
+
|
|
120
|
+
5. **Always include Updated date.** So the reader knows how fresh
|
|
121
|
+
the information is.
|
|
122
|
+
|
|
123
|
+
6. **No opinions, only observations.** "Uses Redux for state" not
|
|
124
|
+
"Uses Redux instead of a better solution." If something is
|
|
125
|
+
genuinely problematic, state the observable impact:
|
|
126
|
+
"Redux store has 47 top-level keys — finding relevant state
|
|
127
|
+
requires searching across 12 reducers."
|
|
128
|
+
|
|
129
|
+
## Creating the .notebook/ for the First Time
|
|
130
|
+
|
|
131
|
+
When `.notebook/` doesn't exist yet:
|
|
132
|
+
|
|
133
|
+
1. Create the directory.
|
|
134
|
+
2. Create INDEX.md with the header only:
|
|
135
|
+
|
|
136
|
+
```markdown
|
|
137
|
+
# .notebook
|
|
138
|
+
> Project intelligence — read before every mission
|
|
139
|
+
|
|
140
|
+
Last updated: [today]
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
3. Do NOT do a full project analysis. Notes are created organically
|
|
144
|
+
as you work. The first notes will come from your first mission's
|
|
145
|
+
Debrief.
|
|
146
|
+
|
|
147
|
+
## Updating Notes
|
|
148
|
+
|
|
149
|
+
When updating an existing note:
|
|
150
|
+
|
|
151
|
+
1. Read the current content.
|
|
152
|
+
2. Add, modify, or remove information based on what you discovered.
|
|
153
|
+
3. Update the `Updated` date at the bottom.
|
|
154
|
+
4. If the summary in INDEX.md changed, update it too.
|
|
155
|
+
|
|
156
|
+
When information becomes invalid (e.g., a flow changed because of
|
|
157
|
+
your work), update the note immediately — stale notes are worse
|
|
158
|
+
than no notes.
|
|
159
|
+
|
|
160
|
+
## Token Budget
|
|
161
|
+
|
|
162
|
+
The entire `.notebook/` system is designed for progressive disclosure:
|
|
163
|
+
|
|
164
|
+
- **INDEX.md** is read every session (~5-50 lines). Cost: minimal.
|
|
165
|
+
- **Individual notes** are read only when relevant to the current
|
|
166
|
+
mission. The AI decides which to open based on INDEX.md tags.
|
|
167
|
+
- **Total cost per session:** INDEX.md + 0-3 relevant notes.
|
|
168
|
+
|
|
169
|
+
If INDEX.md grows beyond 50 entries, consider archiving old notes
|
|
170
|
+
into an `archive/` subdirectory and removing them from the active
|
|
171
|
+
index. Archived notes are still searchable but not loaded by default.
|