@martinffx/atelier 0.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/CHANGELOG.md +38 -0
- package/LICENSE +21 -0
- package/README.md +285 -0
- package/agents/architect.md +38 -0
- package/agents/oracle.md +40 -0
- package/agents/recon.md +39 -0
- package/dist/atelier.js +33082 -0
- package/package.json +44 -0
- package/skills/code-conventional-commit/SKILL.md +134 -0
- package/skills/code-conventional-commit/evals/evals.json +23 -0
- package/skills/code-conventional-commit/workspace/iteration-1/eval-0/with_skill/outputs/commit-message.txt +4 -0
- package/skills/code-conventional-commit/workspace/iteration-1/eval-0/with_skill/outputs/eval_metadata.json +6 -0
- package/skills/code-conventional-commit/workspace/iteration-1/eval-1/with_skill/outputs/eval_metadata.json +6 -0
- package/skills/code-conventional-commit/workspace/iteration-1/eval-1/with_skill/outputs/validation-result.txt +16 -0
- package/skills/code-conventional-commit/workspace/iteration-1/eval-2/with_skill/outputs/commit-message.txt +8 -0
- package/skills/code-conventional-commit/workspace/iteration-1/eval-2/with_skill/outputs/eval_metadata.json +6 -0
- package/skills/code-conventional-commit/workspace/iteration-1/report.html +1325 -0
- package/skills/code-debug/SKILL.md +271 -0
- package/skills/code-debug/references/language-tools.md +139 -0
- package/skills/code-debug/references/techniques.md +117 -0
- package/skills/code-docs/SKILL.md +171 -0
- package/skills/code-docs/references/api-docs.md +116 -0
- package/skills/code-docs/references/changelog.md +64 -0
- package/skills/code-docs/references/readme-structure.md +94 -0
- package/skills/code-git-worktrees/SKILL.md +218 -0
- package/skills/code-perf/SKILL.md +163 -0
- package/skills/code-perf/references/common-bottlenecks.md +124 -0
- package/skills/code-perf/references/optimization-patterns.md +167 -0
- package/skills/code-perf/references/profiling-tools.md +126 -0
- package/skills/code-review/SKILL.md +78 -0
- package/skills/code-review/references/output.md +200 -0
- package/skills/code-review/references/reviewers.md +719 -0
- package/skills/code-review/references/rq.md +357 -0
- package/skills/code-review/references/rs.md +30 -0
- package/skills/code-security/SKILL.md +183 -0
- package/skills/code-security/references/owasp-top-10.md +129 -0
- package/skills/code-security/references/security-tools.md +102 -0
- package/skills/code-security/references/vulnerability-patterns.md +129 -0
- package/skills/code-stacked-commit/SKILL.md +155 -0
- package/skills/code-subagents/SKILL.md +184 -0
- package/skills/code-subagents/references/code-quality-reviewer-prompt.md +48 -0
- package/skills/code-subagents/references/implementor-prompt.md +79 -0
- package/skills/code-subagents/references/spec-reviewer-prompt.md +62 -0
- package/skills/oracle-architect/SKILL.md +246 -0
- package/skills/oracle-architect/references/api-design.md +345 -0
- package/skills/oracle-architect/references/data-modeling.md +318 -0
- package/skills/oracle-architect/references/ddd-patterns.md +247 -0
- package/skills/oracle-challenge/SKILL.md +126 -0
- package/skills/oracle-testing/SKILL.md +237 -0
- package/skills/oracle-testing/references/anti-patterns.md +618 -0
- package/skills/oracle-testing/references/boundaries.md +579 -0
- package/skills/oracle-testing/references/core-testing.md +691 -0
- package/skills/oracle-testing/references/edge-testing.md +794 -0
- package/skills/oracle-testing/references/stub-driven-tdd.md +322 -0
- package/skills/oracle-thinkdeep/SKILL.md +164 -0
- package/skills/python-architecture/SKILL.md +148 -0
- package/skills/python-architecture/references/data-modeling.md +558 -0
- package/skills/python-architecture/references/ddd.md +569 -0
- package/skills/python-architecture/references/functional-core.md +337 -0
- package/skills/python-build-tools/SKILL.md +153 -0
- package/skills/python-build-tools/references/basedpyright.md +321 -0
- package/skills/python-build-tools/references/ruff.md +225 -0
- package/skills/python-build-tools/references/uv.md +257 -0
- package/skills/python-fastapi/SKILL.md +184 -0
- package/skills/python-fastapi/references/api-design.md +563 -0
- package/skills/python-fastapi/references/dependencies.md +479 -0
- package/skills/python-fastapi/references/middleware.md +475 -0
- package/skills/python-fastapi/references/validation.md +497 -0
- package/skills/python-modern-python/SKILL.md +201 -0
- package/skills/python-modern-python/references/async.md +76 -0
- package/skills/python-modern-python/references/pattern-matching.md +89 -0
- package/skills/python-modern-python/references/typing.md +96 -0
- package/skills/python-monorepo/SKILL.md +146 -0
- package/skills/python-monorepo/references/docker.md +515 -0
- package/skills/python-monorepo/references/namespace-packages.md +426 -0
- package/skills/python-monorepo/references/workspace-config.md +341 -0
- package/skills/python-sqlalchemy/SKILL.md +119 -0
- package/skills/python-sqlalchemy/references/async.md +51 -0
- package/skills/python-sqlalchemy/references/models.md +67 -0
- package/skills/python-sqlalchemy/references/queries.md +57 -0
- package/skills/python-temporal/SKILL.md +128 -0
- package/skills/python-temporal/references/patterns.md +87 -0
- package/skills/python-temporal/references/testing.md +54 -0
- package/skills/python-testing/SKILL.md +161 -0
- package/skills/python-testing/references/boundaries.md +449 -0
- package/skills/python-testing/references/mocking.md +449 -0
- package/skills/python-testing/references/pytest.md +524 -0
- package/skills/spec-brainstorm/SKILL.md +325 -0
- package/skills/spec-finish/SKILL.md +159 -0
- package/skills/spec-implement/SKILL.md +296 -0
- package/skills/spec-orchestrator/SKILL.md +156 -0
- package/skills/spec-plan/SKILL.md +248 -0
- package/skills/typescript-api-design/SKILL.md +396 -0
- package/skills/typescript-api-design/references/error-responses.md +469 -0
- package/skills/typescript-build-tools/SKILL.md +447 -0
- package/skills/typescript-build-tools/references/biome.md +436 -0
- package/skills/typescript-build-tools/references/bun.md +432 -0
- package/skills/typescript-build-tools/references/turborepo.md +426 -0
- package/skills/typescript-build-tools/references/vitest.md +518 -0
- package/skills/typescript-drizzle-orm/SKILL.md +398 -0
- package/skills/typescript-drizzle-orm/references/cloudflare.md +392 -0
- package/skills/typescript-drizzle-orm/references/entity-pattern.md +412 -0
- package/skills/typescript-drizzle-orm/references/postgresql.md +191 -0
- package/skills/typescript-drizzle-orm/references/repository-pattern.md +479 -0
- package/skills/typescript-drizzle-orm/references/sqlite.md +291 -0
- package/skills/typescript-dynamodb-toolbox/SKILL.md +370 -0
- package/skills/typescript-dynamodb-toolbox/references/entity-layer.md +574 -0
- package/skills/typescript-dynamodb-toolbox/references/error-handling.md +495 -0
- package/skills/typescript-dynamodb-toolbox/references/modeling.md +332 -0
- package/skills/typescript-dynamodb-toolbox/references/repository-layer.md +631 -0
- package/skills/typescript-dynamodb-toolbox/references/testing.md +718 -0
- package/skills/typescript-dynamodb-toolbox/references/transactions.md +423 -0
- package/skills/typescript-effect-ts/SKILL.md +341 -0
- package/skills/typescript-effect-ts/references/core.md +412 -0
- package/skills/typescript-effect-ts/references/error-handling.md +468 -0
- package/skills/typescript-effect-ts/references/resources.md +476 -0
- package/skills/typescript-effect-ts/references/schema.md +536 -0
- package/skills/typescript-effect-ts/references/services.md +461 -0
- package/skills/typescript-fastify/SKILL.md +405 -0
- package/skills/typescript-fastify/references/plugins.md +329 -0
- package/skills/typescript-fastify/references/typeid.md +315 -0
- package/skills/typescript-functional-patterns/SKILL.md +402 -0
- package/skills/typescript-functional-patterns/references/adts.md +497 -0
- package/skills/typescript-functional-patterns/references/branded-types.md +542 -0
- package/skills/typescript-functional-patterns/references/migration-guide.md +695 -0
- package/skills/typescript-functional-patterns/references/option-result.md +585 -0
- package/skills/typescript-testing/SKILL.md +353 -0
- package/skills/typescript-testing/references/mocking.md +675 -0
- package/skills/typescript-testing/references/msw.md +852 -0
- package/skills/typescript-testing/references/snapshot-testing.md +774 -0
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@martinffx/atelier",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Personal development toolkit - spec-driven development, code quality, deep thinking, and ecosystem patterns",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"atelier": "dist/atelier.js"
|
|
8
|
+
},
|
|
9
|
+
"repository": "github:martinffx/atelier",
|
|
10
|
+
"keywords": ["cli", "claude-code", "opencode", "ai-agents", "spec-driven-development"],
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"files": [
|
|
13
|
+
"dist/",
|
|
14
|
+
"skills/",
|
|
15
|
+
"agents/",
|
|
16
|
+
"README.md",
|
|
17
|
+
"LICENSE",
|
|
18
|
+
"CHANGELOG.md"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "bun build ./src/atelier.ts --outdir ./dist --target bun",
|
|
22
|
+
"typecheck": "tsgo --noEmit",
|
|
23
|
+
"test": "bun test",
|
|
24
|
+
"publish": "bun run build && npm publish",
|
|
25
|
+
"prepare": "simple-git-hooks"
|
|
26
|
+
},
|
|
27
|
+
"simple-git-hooks": {
|
|
28
|
+
"commit-msg": "npx --no -- commitlint --edit $1"
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"commander": "^13.1.0",
|
|
32
|
+
"gray-matter": "^4.0.3",
|
|
33
|
+
"inquirer": "^12.5.2",
|
|
34
|
+
"zod": "^3.25.0"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@commitlint/cli": "^19.8.0",
|
|
38
|
+
"@commitlint/config-conventional": "^19.8.0",
|
|
39
|
+
"@types/bun": "^1.3.13",
|
|
40
|
+
"@types/node": "^22.14.1",
|
|
41
|
+
"simple-git-hooks": "^2.12.1",
|
|
42
|
+
"@typescript/native-preview": "^7.0.0-dev.20260514.1"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-conventional-commit
|
|
3
|
+
description: Generate and validate conventional commit messages following the conventionalcommits.org spec. Use whenever the user wants to commit code, mentions commit messages, git commit, or asks to create a commit. Triggers on "commit", "git commit", "conventional", or when reviewing commit message format.
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Conventional Commit Skill
|
|
8
|
+
|
|
9
|
+
Generate and validate commit messages following the [Conventional Commits](https://www.conventionalcommits.org/) specification.
|
|
10
|
+
|
|
11
|
+
## Conventional Commit Format
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
<type>(<scope>): <subject>
|
|
15
|
+
|
|
16
|
+
[optional body]
|
|
17
|
+
|
|
18
|
+
[optional footer(s)]
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Types
|
|
22
|
+
|
|
23
|
+
| Type | Description |
|
|
24
|
+
|------|-------------|
|
|
25
|
+
| `feat` | New feature |
|
|
26
|
+
| `fix` | Bug fix |
|
|
27
|
+
| `docs` | Documentation only |
|
|
28
|
+
| `style` | Code style (formatting, semicolons, etc.) |
|
|
29
|
+
| `refactor` | Code change that neither fixes nor adds |
|
|
30
|
+
| `test` | Adding or updating tests |
|
|
31
|
+
| `chore` | Build, tooling, dependencies |
|
|
32
|
+
| `perf` | Performance improvement |
|
|
33
|
+
| `ci` | CI configuration changes |
|
|
34
|
+
| `build` | Build system or dependencies |
|
|
35
|
+
| `revert` | Reverting a previous commit |
|
|
36
|
+
|
|
37
|
+
### Rules
|
|
38
|
+
|
|
39
|
+
- **Subject**: Short description, imperative mood, lowercase, no period at end
|
|
40
|
+
- **Scope**: Optional, lowercase, describes what was changed (e.g., `auth`, `api`, `ui`)
|
|
41
|
+
- **Breaking changes**: Add `!` after type/scope: `feat(auth)!: change API`
|
|
42
|
+
- **Footer**: For breaking changes (`BREAKING CHANGE:`) or issue references (`Closes #123`)
|
|
43
|
+
|
|
44
|
+
## Operations
|
|
45
|
+
|
|
46
|
+
### 1. Generate Commit from Diff
|
|
47
|
+
|
|
48
|
+
When user wants to commit changes:
|
|
49
|
+
|
|
50
|
+
1. Run `git status` to see changed files
|
|
51
|
+
2. Run `git diff --staged` for staged changes
|
|
52
|
+
3. Analyze what changed to determine:
|
|
53
|
+
- **Type**: Which type best describes the changes?
|
|
54
|
+
- **Scope**: What area was affected? (optional)
|
|
55
|
+
- **Subject**: What was done? (imperative: "add" not "added")
|
|
56
|
+
4. Create a conventional commit message
|
|
57
|
+
5. Run `git commit -m "<message>"`
|
|
58
|
+
|
|
59
|
+
**Example:**
|
|
60
|
+
```
|
|
61
|
+
feat(auth): add JWT token refresh
|
|
62
|
+
|
|
63
|
+
Implements token refresh endpoint to extend sessions
|
|
64
|
+
without requiring re-authentication.
|
|
65
|
+
|
|
66
|
+
Closes #142
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 2. Validate Commit Message
|
|
70
|
+
|
|
71
|
+
When user asks to validate or check a commit message:
|
|
72
|
+
|
|
73
|
+
1. Parse the commit message
|
|
74
|
+
2. Check format: `<type>(<scope>): <subject>`
|
|
75
|
+
3. Validate type is from the allowed list
|
|
76
|
+
4. Check subject follows rules (lowercase, imperative, no period)
|
|
77
|
+
5. Flag any issues found
|
|
78
|
+
|
|
79
|
+
## Input Methods
|
|
80
|
+
|
|
81
|
+
| Input | Action |
|
|
82
|
+
|-------|--------|
|
|
83
|
+
| User says "commit" or "git commit" | Generate from git diff, then commit |
|
|
84
|
+
| User says "validate commit" | Check the commit message format |
|
|
85
|
+
| User pastes commit message | Validate the provided message |
|
|
86
|
+
|
|
87
|
+
## Auto-Commit Workflow
|
|
88
|
+
|
|
89
|
+
When generating a commit:
|
|
90
|
+
|
|
91
|
+
1. Show the user the commit message first
|
|
92
|
+
2. Ask for confirmation before committing (unless user explicitly says "just do it")
|
|
93
|
+
3. Execute `git commit -m "<message>"` after confirmation
|
|
94
|
+
4. Show the result of the commit
|
|
95
|
+
|
|
96
|
+
## Error Handling
|
|
97
|
+
|
|
98
|
+
- If no staged changes: `git status` shows nothing → warn user nothing to commit
|
|
99
|
+
- If git not initialized: Initialize repo or warn user
|
|
100
|
+
- If commit fails: Show error and offer to retry
|
|
101
|
+
|
|
102
|
+
## Examples
|
|
103
|
+
|
|
104
|
+
**Input:** "I fixed the login bug"
|
|
105
|
+
**Output:**
|
|
106
|
+
```
|
|
107
|
+
fix(auth): resolve login timeout issue
|
|
108
|
+
|
|
109
|
+
Users were logged out after 5 minutes due to
|
|
110
|
+
incorrect token expiry calculation.
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Input:** "I added a new API endpoint for users"
|
|
114
|
+
**Output:**
|
|
115
|
+
```
|
|
116
|
+
feat(api): add user profile endpoint
|
|
117
|
+
|
|
118
|
+
GET /users/:id returns user profile data including
|
|
119
|
+
name, email, and avatar URL.
|
|
120
|
+
|
|
121
|
+
Closes #89
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Input:** "I changed the auth API, this breaks old clients"
|
|
125
|
+
**Output:**
|
|
126
|
+
```
|
|
127
|
+
feat(auth)!: change token validation endpoint
|
|
128
|
+
|
|
129
|
+
The /auth/verify endpoint now requires Bearer token
|
|
130
|
+
instead of query parameter.
|
|
131
|
+
|
|
132
|
+
BREAKING CHANGE: Clients must update to send
|
|
133
|
+
Authorization header with Bearer token.
|
|
134
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "conventional-commit",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Generate a commit message for these changes: Added a new user profile page component that displays user name, email, and avatar. Also added a settings modal for updating preferences.",
|
|
7
|
+
"expected_output": "Should produce a feat commit with proper scope, imperative subject, and optional body",
|
|
8
|
+
"files": []
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"id": 2,
|
|
12
|
+
"prompt": "Validate this commit message: 'feat: added new login page' - is it valid conventional commit format?",
|
|
13
|
+
"expected_output": "Should identify issues: subject should be lowercase, imperative (add not added), possibly missing scope",
|
|
14
|
+
"files": []
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": 3,
|
|
18
|
+
"prompt": "I made breaking changes to the API - the old /v1/users endpoint now returns different JSON structure. Create a commit message that properly indicates this is a breaking change.",
|
|
19
|
+
"expected_output": "Should produce a commit with ! in type (e.g., feat! or fix!) and BREAKING CHANGE footer",
|
|
20
|
+
"files": []
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"eval_id": 0,
|
|
3
|
+
"eval_name": "generate-commit",
|
|
4
|
+
"prompt": "Generate a commit message for these changes: Added a new user profile page component that displays user name, email, and avatar. Also added a settings modal for updating preferences.",
|
|
5
|
+
"assertions": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
VALIDATION RESULT
|
|
2
|
+
=================
|
|
3
|
+
Message: 'feat: added new login page'
|
|
4
|
+
|
|
5
|
+
IS VALID: NO
|
|
6
|
+
|
|
7
|
+
Format Check:
|
|
8
|
+
- Type: 'feat' ✓ (valid type)
|
|
9
|
+
- Scope: (optional, omitted) ✓
|
|
10
|
+
- Subject: 'added new login page'
|
|
11
|
+
|
|
12
|
+
Issues Found:
|
|
13
|
+
1. Subject must use imperative mood: use 'add' instead of 'added'
|
|
14
|
+
|
|
15
|
+
Correct format:
|
|
16
|
+
feat: add new login page
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
feat(api)!: restructure /v1/users response format
|
|
2
|
+
|
|
3
|
+
The /v1/users endpoint now returns a different JSON structure
|
|
4
|
+
with nested data envelope and updated field names.
|
|
5
|
+
|
|
6
|
+
BREAKING CHANGE: Response format changed from flat structure
|
|
7
|
+
to { data: {...}, meta: {...} }. Clients must update parsing
|
|
8
|
+
to access user fields via response.data instead of directly.
|