agemon 0.1.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +732 -28
- package/assets/skills/architecture/agemon-architecture/LICENSE +21 -0
- package/assets/skills/architecture/agemon-architecture/NOTICE.md +9 -0
- package/assets/skills/architecture/agemon-architecture/SKILL.md +275 -0
- package/assets/skills/code-quality/agemon-clean-code/LICENSE +21 -0
- package/assets/skills/code-quality/agemon-clean-code/NOTICE.md +9 -0
- package/assets/skills/code-quality/agemon-clean-code/SKILL.md +78 -0
- package/assets/skills/code-quality/agemon-house-rules/SKILL.md +103 -0
- package/assets/skills/commit/agemon-commit/SKILL.md +87 -0
- package/assets/skills/design/agemon-design/LICENSE +21 -0
- package/assets/skills/design/agemon-design/NOTICE.md +9 -0
- package/assets/skills/design/agemon-design/SKILL.md +391 -0
- package/assets/skills/design/agemon-design/references/accessibility.md +182 -0
- package/assets/skills/design/agemon-design/references/agents.md +63 -0
- package/assets/skills/design/agemon-design/references/ai-chat.md +158 -0
- package/assets/skills/design/agemon-design/references/brief.md +186 -0
- package/assets/skills/design/agemon-design/references/color.md +216 -0
- package/assets/skills/design/agemon-design/references/components.md +91 -0
- package/assets/skills/design/agemon-design/references/copy.md +300 -0
- package/assets/skills/design/agemon-design/references/craft-intent.md +160 -0
- package/assets/skills/design/agemon-design/references/dashboard.md +131 -0
- package/assets/skills/design/agemon-design/references/dataviz.md +197 -0
- package/assets/skills/design/agemon-design/references/finish-bar.md +243 -0
- package/assets/skills/design/agemon-design/references/forms.md +192 -0
- package/assets/skills/design/agemon-design/references/heuristics.md +403 -0
- package/assets/skills/design/agemon-design/references/inspiration.md +287 -0
- package/assets/skills/design/agemon-design/references/layout.md +236 -0
- package/assets/skills/design/agemon-design/references/loops.md +155 -0
- package/assets/skills/design/agemon-design/references/metadata.md +98 -0
- package/assets/skills/design/agemon-design/references/modern-css.md +448 -0
- package/assets/skills/design/agemon-design/references/motion.md +434 -0
- package/assets/skills/design/agemon-design/references/personas.md +206 -0
- package/assets/skills/design/agemon-design/references/principles-catalog.md +299 -0
- package/assets/skills/design/agemon-design/references/recipe-auth.md +88 -0
- package/assets/skills/design/agemon-design/references/recipe-dashboard.md +130 -0
- package/assets/skills/design/agemon-design/references/recipe-landing.md +122 -0
- package/assets/skills/design/agemon-design/references/responsive.md +168 -0
- package/assets/skills/design/agemon-design/references/review.md +340 -0
- package/assets/skills/design/agemon-design/references/sound.md +150 -0
- package/assets/skills/design/agemon-design/references/spec.md +123 -0
- package/assets/skills/design/agemon-design/references/stack.md +522 -0
- package/assets/skills/design/agemon-design/references/state-design.md +188 -0
- package/assets/skills/design/agemon-design/references/themes.md +229 -0
- package/assets/skills/design/agemon-design/references/tokens.md +350 -0
- package/assets/skills/design/agemon-design/references/typography.md +246 -0
- package/assets/skills/design/agemon-design-dashboard/LICENSE +21 -0
- package/assets/skills/design/agemon-design-dashboard/NOTICE.md +9 -0
- package/assets/skills/design/agemon-design-dashboard/SKILL.md +113 -0
- package/assets/skills/design/agemon-design-editorial/LICENSE +21 -0
- package/assets/skills/design/agemon-design-editorial/NOTICE.md +9 -0
- package/assets/skills/design/agemon-design-editorial/SKILL.md +98 -0
- package/assets/skills/design/agemon-design-minimal/LICENSE +21 -0
- package/assets/skills/design/agemon-design-minimal/NOTICE.md +9 -0
- package/assets/skills/design/agemon-design-minimal/SKILL.md +97 -0
- package/assets/skills/geo-seo/geo/LICENSE +21 -0
- package/assets/skills/geo-seo/geo/NOTICE.md +18 -0
- package/assets/skills/geo-seo/geo/SKILL.md +145 -0
- package/assets/skills/geo-seo/geo-audit/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-audit/NOTICE.md +17 -0
- package/assets/skills/geo-seo/geo-audit/SKILL.md +371 -0
- package/assets/skills/geo-seo/geo-audit/references/ai-visibility.md +233 -0
- package/assets/skills/geo-seo/geo-audit/references/content.md +329 -0
- package/assets/skills/geo-seo/geo-audit/references/platform-analysis.md +294 -0
- package/assets/skills/geo-seo/geo-audit/references/schema.md +383 -0
- package/assets/skills/geo-seo/geo-audit/references/technical.md +368 -0
- package/assets/skills/geo-seo/geo-brand-mentions/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-brand-mentions/NOTICE.md +15 -0
- package/assets/skills/geo-seo/geo-brand-mentions/SKILL.md +459 -0
- package/assets/skills/geo-seo/geo-citability/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-citability/NOTICE.md +14 -0
- package/assets/skills/geo-seo/geo-citability/SKILL.md +320 -0
- package/assets/skills/geo-seo/geo-content/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-content/NOTICE.md +14 -0
- package/assets/skills/geo-seo/geo-content/SKILL.md +352 -0
- package/assets/skills/geo-seo/geo-crawlers/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-crawlers/NOTICE.md +15 -0
- package/assets/skills/geo-seo/geo-crawlers/SKILL.md +388 -0
- package/assets/skills/geo-seo/geo-llmstxt/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-llmstxt/NOTICE.md +14 -0
- package/assets/skills/geo-seo/geo-llmstxt/SKILL.md +433 -0
- package/assets/skills/geo-seo/geo-platform-optimizer/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-platform-optimizer/NOTICE.md +14 -0
- package/assets/skills/geo-seo/geo-platform-optimizer/SKILL.md +282 -0
- package/assets/skills/geo-seo/geo-report/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-report/NOTICE.md +14 -0
- package/assets/skills/geo-seo/geo-report/SKILL.md +406 -0
- package/assets/skills/geo-seo/geo-report-pdf/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-report-pdf/NOTICE.md +20 -0
- package/assets/skills/geo-seo/geo-report-pdf/SKILL.md +153 -0
- package/assets/skills/geo-seo/geo-report-pdf/templates/geo-report-template.html +548 -0
- package/assets/skills/geo-seo/geo-schema/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-schema/NOTICE.md +16 -0
- package/assets/skills/geo-seo/geo-schema/SKILL.md +396 -0
- package/assets/skills/geo-seo/geo-technical/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-technical/NOTICE.md +15 -0
- package/assets/skills/geo-seo/geo-technical/SKILL.md +566 -0
- package/assets/skills/performance/agemon-performance/NOTICE.md +1 -0
- package/assets/skills/performance/agemon-performance/SKILL.md +76 -0
- package/assets/skills/security/agemon-security/LICENSE +21 -0
- package/assets/skills/security/agemon-security/NOTICE.md +8 -0
- package/assets/skills/security/agemon-security/SKILL.md +356 -0
- package/assets/skills/self-review/agemon-review-intake/LICENSE +21 -0
- package/assets/skills/self-review/agemon-review-intake/NOTICE.md +9 -0
- package/assets/skills/self-review/agemon-review-intake/SKILL.md +205 -0
- package/assets/skills/self-review/agemon-review-request/LICENSE +21 -0
- package/assets/skills/self-review/agemon-review-request/NOTICE.md +9 -0
- package/assets/skills/self-review/agemon-review-request/SKILL.md +104 -0
- package/assets/skills/self-review/agemon-review-request/code-reviewer.md +188 -0
- package/assets/skills/self-review/agemon-root-cause/LICENSE +21 -0
- package/assets/skills/self-review/agemon-root-cause/NOTICE.md +10 -0
- package/assets/skills/self-review/agemon-root-cause/SKILL.md +283 -0
- package/assets/skills/self-review/agemon-root-cause/condition-based-waiting-example.ts +158 -0
- package/assets/skills/self-review/agemon-root-cause/condition-based-waiting.md +115 -0
- package/assets/skills/self-review/agemon-root-cause/defense-in-depth.md +122 -0
- package/assets/skills/self-review/agemon-root-cause/find-polluter.sh +72 -0
- package/assets/skills/self-review/agemon-root-cause/root-cause-tracing.md +169 -0
- package/assets/skills/self-review/agemon-root-cause/test-academic.md +14 -0
- package/assets/skills/self-review/agemon-root-cause/test-pressure-1.md +58 -0
- package/assets/skills/self-review/agemon-root-cause/test-pressure-2.md +68 -0
- package/assets/skills/self-review/agemon-root-cause/test-pressure-3.md +69 -0
- package/assets/skills/self-review/agemon-verify-before-done/LICENSE +21 -0
- package/assets/skills/self-review/agemon-verify-before-done/NOTICE.md +9 -0
- package/assets/skills/self-review/agemon-verify-before-done/SKILL.md +120 -0
- package/assets/skills/team-lead/agemon-plan-rfc/SKILL.md +317 -0
- package/assets/skills/team-lead/prd-generator/SKILL.md +437 -0
- package/assets/skills/team-lead/skill-headofit-audit/SKILL.md +72 -0
- package/assets/skills/team-lead/skill-incident-rca/SKILL.md +66 -0
- package/assets/skills/team-lead/skill-meeting-lifecycle/SKILL.md +63 -0
- package/assets/skills/team-lead/skill-obsidian-vault-sync/SKILL.md +69 -0
- package/assets/skills/team-lead/skill-prd-decomposer/SKILL.md +71 -0
- package/assets/skills/team-lead/skill-sec-check/SKILL.md +70 -0
- package/assets/skills/team-lead/skill-task-extractor/SKILL.md +79 -0
- package/assets/skills/team-lead/skill-tech-spike/SKILL.md +57 -0
- package/assets/skills/team-lead/skill-techlead-reviewer/SKILL.md +81 -0
- package/assets/tools/code-review-graph-constraints.txt +1418 -0
- package/assets/tools/package-lock.json +111 -0
- package/assets/tools/package.json +6 -0
- package/dist/chunk-5LATHJYU.js +4026 -0
- package/dist/chunk-5LATHJYU.js.map +1 -0
- package/dist/fake-subprocess-2BETWZVZ.js +666 -0
- package/dist/fake-subprocess-2BETWZVZ.js.map +1 -0
- package/dist/index.js +21101 -1956
- package/dist/index.js.map +1 -1
- package/package.json +30 -17
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Vendored skill
|
|
2
|
+
|
|
3
|
+
- Source: https://github.com/nathankim0/clean-architecture-skills
|
|
4
|
+
- Path in source: plugins/clean-architecture/skills/clean-architecture
|
|
5
|
+
- Commit: 0022fbb712f28517aa07a531fd82c70a9e531beb
|
|
6
|
+
- Retrieved: 2026-08-17
|
|
7
|
+
- License: MIT — see `LICENSE` in this directory.
|
|
8
|
+
|
|
9
|
+
- Renamed from `clean-architecture` to `agemon-architecture` for agemon branding — installed skills should read as agemon's own, not a third-party project name.
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agemon-architecture
|
|
3
|
+
description: Review code and provide design guidance based on Clean Architecture principles. Checks dependency rule, layer separation, crossing boundaries, and SOLID principles. Use when asked to review architecture, check dependencies, or design with clean architecture principles.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Clean Architecture Review Skill
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
This skill analyzes and reviews code based on Robert C. Martin's (Uncle Bob) Clean Architecture principles.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
- When user requests "clean architecture" review
|
|
15
|
+
- When asked about "architecture review", "dependency check", or "layer separation"
|
|
16
|
+
- When designing new features with clean architecture
|
|
17
|
+
|
|
18
|
+
## Instructions
|
|
19
|
+
|
|
20
|
+
### 1. Project Structure Analysis
|
|
21
|
+
|
|
22
|
+
First, understand the project's directory structure:
|
|
23
|
+
- Check if layers are separated
|
|
24
|
+
- Examine module/package structure
|
|
25
|
+
- Identify dependency direction
|
|
26
|
+
|
|
27
|
+
### 2. The Dependency Rule
|
|
28
|
+
|
|
29
|
+
**Core Principle**: Source code dependencies must only point inward (toward higher-level policies).
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
┌─────────────────────────────────────────────────────────┐
|
|
33
|
+
│ Frameworks & Drivers │
|
|
34
|
+
│ ┌─────────────────────────────────────────────────┐ │
|
|
35
|
+
│ │ Interface Adapters │ │
|
|
36
|
+
│ │ ┌─────────────────────────────────────────┐ │ │
|
|
37
|
+
│ │ │ Use Cases │ │ │
|
|
38
|
+
│ │ │ ┌─────────────────────────────────┐ │ │ │
|
|
39
|
+
│ │ │ │ Entities │ │ │ │
|
|
40
|
+
│ │ │ └─────────────────────────────────┘ │ │ │
|
|
41
|
+
│ │ └─────────────────────────────────────────┘ │ │
|
|
42
|
+
│ └─────────────────────────────────────────────────┘ │
|
|
43
|
+
└─────────────────────────────────────────────────────────┘
|
|
44
|
+
← Dependencies flow inward
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Checklist:
|
|
48
|
+
- Do inner layers avoid referencing outer layers?
|
|
49
|
+
- Are Entities unaware of Use Cases, Adapters, and Infrastructure?
|
|
50
|
+
- Do Use Cases avoid directly referencing Adapters or Infrastructure?
|
|
51
|
+
- Is DIP applied when crossing boundaries?
|
|
52
|
+
|
|
53
|
+
### 2-1. Crossing Boundaries
|
|
54
|
+
|
|
55
|
+
The flow of control and source code dependency can point in opposite directions.
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
Controller → Use Case → Presenter
|
|
59
|
+
↓ ↓ ↑
|
|
60
|
+
[dependency] [dependency] [inverted!]
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Example: When Use Case needs to call Presenter
|
|
64
|
+
- Directly referencing Presenter from Use Case violates the dependency rule
|
|
65
|
+
- **Solution**: Define Output Port (interface) inside Use Case, Presenter implements it
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
// Use Case Layer (inner)
|
|
69
|
+
interface OrderOutputPort {
|
|
70
|
+
presentOrder(order: OrderData): void;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
class CreateOrderUseCase {
|
|
74
|
+
constructor(private outputPort: OrderOutputPort) {}
|
|
75
|
+
execute() {
|
|
76
|
+
// ... business logic
|
|
77
|
+
this.outputPort.presentOrder(orderData);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Adapter Layer (outer) - depends on Use Case
|
|
82
|
+
class OrderPresenter implements OrderOutputPort {
|
|
83
|
+
presentOrder(order: OrderData): void {
|
|
84
|
+
// Transform for UI
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 2-2. What Data Crosses Boundaries
|
|
90
|
+
|
|
91
|
+
**Principle**: Data crossing boundaries should be simple data structures (DTOs).
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
// Bad: Passing Entity directly
|
|
95
|
+
class GetUserUseCase {
|
|
96
|
+
execute(): User { // Returning Entity directly
|
|
97
|
+
return this.userRepository.findById(id);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Good: Transform to DTO
|
|
102
|
+
class GetUserUseCase {
|
|
103
|
+
execute(): UserResponseDTO { // Simple data structure
|
|
104
|
+
const user = this.userRepository.findById(id);
|
|
105
|
+
return { id: user.id, name: user.name };
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Checklist:
|
|
111
|
+
- Are Entities or Database Rows not crossing boundaries directly?
|
|
112
|
+
- Are external framework data formats not penetrating inner layers?
|
|
113
|
+
- Are appropriate DTOs defined for each layer?
|
|
114
|
+
|
|
115
|
+
### 3. Layer Structure Review
|
|
116
|
+
|
|
117
|
+
#### Entities (Domain Layer)
|
|
118
|
+
- Contains core business rules
|
|
119
|
+
- No external dependencies
|
|
120
|
+
- Least likely to change
|
|
121
|
+
|
|
122
|
+
Checklist:
|
|
123
|
+
- Does Entity avoid depending on frameworks?
|
|
124
|
+
- Does it contain only pure business logic?
|
|
125
|
+
- Are there no external library imports?
|
|
126
|
+
|
|
127
|
+
#### Use Cases (Application Layer)
|
|
128
|
+
- Application-specific business rules
|
|
129
|
+
- Orchestrates Entities to implement features
|
|
130
|
+
- Defines interfaces for external systems
|
|
131
|
+
|
|
132
|
+
Checklist:
|
|
133
|
+
- Does each Use Case have a single responsibility?
|
|
134
|
+
- Are Input/Output ports clearly defined?
|
|
135
|
+
- Does it use Repository interfaces (not implementations)?
|
|
136
|
+
|
|
137
|
+
#### Interface Adapters
|
|
138
|
+
- Handles data transformation
|
|
139
|
+
- Contains Controllers, Presenters, Gateways
|
|
140
|
+
- Can apply patterns like MVC, MVVM
|
|
141
|
+
|
|
142
|
+
Checklist:
|
|
143
|
+
- Is transformation between DTOs and Entities happening here?
|
|
144
|
+
- Is the separation between external and internal formats clear?
|
|
145
|
+
|
|
146
|
+
#### Frameworks & Drivers (Infrastructure Layer)
|
|
147
|
+
- DB, Web Framework, external services
|
|
148
|
+
- Mostly glue code
|
|
149
|
+
- Most likely to change
|
|
150
|
+
|
|
151
|
+
Checklist:
|
|
152
|
+
- Are framework dependencies isolated to this layer?
|
|
153
|
+
- Are Repository implementations located here?
|
|
154
|
+
|
|
155
|
+
### 4. SOLID Principles Review
|
|
156
|
+
|
|
157
|
+
Object-oriented design principles used in Clean Architecture implementation. **DIP** is essential for Crossing Boundaries.
|
|
158
|
+
|
|
159
|
+
| Principle | Description | Clean Architecture Relevance |
|
|
160
|
+
|-----------|-------------|------------------------------|
|
|
161
|
+
| **SRP** | A class should have only one reason to change | Layer responsibility separation |
|
|
162
|
+
| **OCP** | Open for extension, closed for modification | Extension through interfaces |
|
|
163
|
+
| **LSP** | Subtypes must be substitutable for base types | Implementation replaceability |
|
|
164
|
+
| **ISP** | Don't depend on interfaces you don't use | Port interface segregation |
|
|
165
|
+
| **DIP** | Depend on abstractions, not concretions | **Core of Crossing Boundaries** |
|
|
166
|
+
|
|
167
|
+
## Output Format
|
|
168
|
+
|
|
169
|
+
Provide review results in this format:
|
|
170
|
+
|
|
171
|
+
```markdown
|
|
172
|
+
# Clean Architecture Review Report
|
|
173
|
+
|
|
174
|
+
## Summary
|
|
175
|
+
- Overall Assessment: [Good/Needs Improvement/Critical]
|
|
176
|
+
- Key findings summary
|
|
177
|
+
|
|
178
|
+
## Dependency Rule Analysis
|
|
179
|
+
- List of violations
|
|
180
|
+
- Improvement suggestions
|
|
181
|
+
|
|
182
|
+
## Layer Structure Review
|
|
183
|
+
### Entities: [Good/Needs Improvement]
|
|
184
|
+
### Use Cases: [Good/Needs Improvement]
|
|
185
|
+
### Interface Adapters: [Good/Needs Improvement]
|
|
186
|
+
### Infrastructure: [Good/Needs Improvement]
|
|
187
|
+
|
|
188
|
+
## Recommendations
|
|
189
|
+
1. High priority improvements
|
|
190
|
+
2. Medium priority improvements
|
|
191
|
+
3. Long-term suggestions
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Important Notes
|
|
195
|
+
|
|
196
|
+
### Clean Architecture is Not a Silver Bullet
|
|
197
|
+
|
|
198
|
+
- Not all projects require exactly 4 layers
|
|
199
|
+
- Layer count is flexible as long as the dependency rule is followed
|
|
200
|
+
- Apply according to project scale and complexity
|
|
201
|
+
|
|
202
|
+
### Common Pitfalls to Avoid
|
|
203
|
+
|
|
204
|
+
1. **Over-obsession with layers**: Layer separation is not the goal itself
|
|
205
|
+
2. **Over-abstraction**: Creating interfaces with only one implementation
|
|
206
|
+
3. **Superficial adoption**: Relying on IDE refactoring while ignoring actual dependency rules
|
|
207
|
+
4. **Over-engineering for the future**: Adding complexity for unlikely changes
|
|
208
|
+
|
|
209
|
+
### Key Questions
|
|
210
|
+
|
|
211
|
+
Always consider these questions during review:
|
|
212
|
+
- "Does this separation actually provide benefits?"
|
|
213
|
+
- "Is the dependency rule truly being followed?"
|
|
214
|
+
- "Is the impact scope minimized when changes occur?"
|
|
215
|
+
|
|
216
|
+
### Practical Verification
|
|
217
|
+
|
|
218
|
+
Ask yourself if you're really benefiting from Clean Architecture:
|
|
219
|
+
- Is it the layer separation that helps, or just IDE auto-refactoring?
|
|
220
|
+
- Is a Repository interface with only one implementation really necessary?
|
|
221
|
+
- Are you over-abstracting for a 0.001% chance of future change?
|
|
222
|
+
- Can you rename a class in outer modules without affecting inner modules?
|
|
223
|
+
|
|
224
|
+
## Language-Specific Examples
|
|
225
|
+
|
|
226
|
+
### TypeScript/JavaScript
|
|
227
|
+
```typescript
|
|
228
|
+
// Good: Dependency Inversion
|
|
229
|
+
interface UserRepository {
|
|
230
|
+
findById(id: string): Promise<User>;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
class GetUserUseCase {
|
|
234
|
+
constructor(private userRepository: UserRepository) {}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// Bad: Depending on concrete implementation
|
|
238
|
+
class GetUserUseCase {
|
|
239
|
+
constructor(private userRepository: PostgresUserRepository) {}
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### Python
|
|
244
|
+
```python
|
|
245
|
+
# Good: Interface definition using Protocol
|
|
246
|
+
from typing import Protocol
|
|
247
|
+
|
|
248
|
+
class UserRepository(Protocol):
|
|
249
|
+
def find_by_id(self, id: str) -> User: ...
|
|
250
|
+
|
|
251
|
+
# Bad: Direct implementation import
|
|
252
|
+
from infrastructure.postgres import PostgresUserRepository
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### Java/Kotlin
|
|
256
|
+
```kotlin
|
|
257
|
+
// Good: Interface segregation
|
|
258
|
+
interface UserRepository {
|
|
259
|
+
fun findById(id: String): User?
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
class GetUserUseCase(
|
|
263
|
+
private val userRepository: UserRepository
|
|
264
|
+
)
|
|
265
|
+
|
|
266
|
+
// Bad: Using concrete implementation
|
|
267
|
+
class GetUserUseCase(
|
|
268
|
+
private val userRepository: JpaUserRepository
|
|
269
|
+
)
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
## References
|
|
273
|
+
|
|
274
|
+
- [The Clean Architecture - Robert C. Martin](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)
|
|
275
|
+
- Clean Architecture: A Craftsman's Guide to Software Structure and Design (Book)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 forrestchang and SwarmClaw AI contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Vendored skill
|
|
2
|
+
|
|
3
|
+
- Source: https://github.com/swarmclawai/andrej-karpathy-skills
|
|
4
|
+
- Path in source: skills/karpathy-guidelines
|
|
5
|
+
- Commit: 29b8bc1d0e1905d777b2983343abb058b13c2e54
|
|
6
|
+
- Retrieved: 2026-08-17
|
|
7
|
+
- License: MIT — see `LICENSE` in this directory.
|
|
8
|
+
- Canonical source per that repo's own README; content also mirrors several other forks of the same Karpathy-derived guidelines.
|
|
9
|
+
- Renamed from `karpathy-guidelines` to `agemon-clean-code` for agemon branding — installed skills should read as agemon's own, not a third-party project name.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agemon-clean-code
|
|
3
|
+
description: Behavioral guidelines to reduce common LLM coding mistakes. Use when writing, reviewing, or refactoring code to avoid overcomplication, make surgical changes, surface assumptions, and define verifiable success criteria.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Karpathy Guidelines
|
|
7
|
+
|
|
8
|
+
Behavioral guidelines to reduce common LLM coding mistakes, derived from [Andrej Karpathy's observations](https://x.com/karpathy/status/2015883857489522876) on LLM coding pitfalls.
|
|
9
|
+
|
|
10
|
+
**Tradeoff:** These guidelines bias toward caution over speed. For trivial tasks, use judgment.
|
|
11
|
+
|
|
12
|
+
## 1. Think Before Coding
|
|
13
|
+
|
|
14
|
+
**Don't assume. Don't hide confusion. Surface tradeoffs.**
|
|
15
|
+
|
|
16
|
+
Before implementing:
|
|
17
|
+
- State your assumptions explicitly. If uncertain, ask.
|
|
18
|
+
- If multiple interpretations exist, present them - don't pick silently.
|
|
19
|
+
- If a simpler approach exists, say so. Push back when warranted.
|
|
20
|
+
- If something is unclear, stop. Name what's confusing. Ask.
|
|
21
|
+
|
|
22
|
+
## 2. Simplicity First
|
|
23
|
+
|
|
24
|
+
**Minimum code that solves the problem. Nothing speculative.**
|
|
25
|
+
|
|
26
|
+
- No features beyond what was asked.
|
|
27
|
+
- No abstractions for single-use code.
|
|
28
|
+
- No "flexibility" or "configurability" that wasn't requested.
|
|
29
|
+
- No error handling for impossible scenarios.
|
|
30
|
+
- If you write 200 lines and it could be 50, rewrite it.
|
|
31
|
+
|
|
32
|
+
Ask yourself: "Would a senior engineer say this is overcomplicated?" If yes, simplify.
|
|
33
|
+
|
|
34
|
+
## 3. Self-Documenting Code (strict)
|
|
35
|
+
|
|
36
|
+
**Code must be understandable from its structure, names, and control flow alone. Needing an explanation is a defect, not a documentation gap.**
|
|
37
|
+
|
|
38
|
+
- Use descriptive names that make values, conditions, and operations clear without commentary.
|
|
39
|
+
- Keep functions focused; split code when a reader must mentally track unrelated steps at once.
|
|
40
|
+
- Prefer clear intermediate variables and small helpers over dense expressions or hidden side effects.
|
|
41
|
+
- If a reviewer — or you, re-reading your own change — has to ask "what does this do?" or "why is this here?" about *what*/*how* logic, that logic must be renamed, restructured, or split until it's obvious. Do not resolve that question with a comment.
|
|
42
|
+
- Add a comment only when it records non-obvious context that cannot be made clear in code at all, such as a compatibility constraint, external contract, or intentionally surprising decision. Never use one to explain *what*/*how* something works.
|
|
43
|
+
|
|
44
|
+
Before finishing, read the changed code with its why-comments hidden. If its purpose or flow is unclear without them, it isn't done — simplify or split it further, don't add explanation.
|
|
45
|
+
|
|
46
|
+
## 4. Surgical Changes
|
|
47
|
+
|
|
48
|
+
**Touch only what you must. Clean up only your own mess.**
|
|
49
|
+
|
|
50
|
+
When editing existing code:
|
|
51
|
+
- Don't "improve" adjacent code, comments, or formatting.
|
|
52
|
+
- Don't refactor things that aren't broken.
|
|
53
|
+
- Match existing style, even if you'd do it differently.
|
|
54
|
+
- If you notice unrelated dead code, mention it - don't delete it.
|
|
55
|
+
|
|
56
|
+
When your changes create orphans:
|
|
57
|
+
- Remove imports/variables/functions that YOUR changes made unused.
|
|
58
|
+
- Don't remove pre-existing dead code unless asked.
|
|
59
|
+
|
|
60
|
+
The test: Every changed line should trace directly to the user's request.
|
|
61
|
+
|
|
62
|
+
## 5. Goal-Driven Execution
|
|
63
|
+
|
|
64
|
+
**Define success criteria. Loop until verified.**
|
|
65
|
+
|
|
66
|
+
Transform tasks into verifiable goals:
|
|
67
|
+
- "Add validation" → "Write tests for invalid inputs, then make them pass"
|
|
68
|
+
- "Fix the bug" → "Write a test that reproduces it, then make it pass"
|
|
69
|
+
- "Refactor X" → "Ensure tests pass before and after"
|
|
70
|
+
|
|
71
|
+
For multi-step tasks, state a brief plan:
|
|
72
|
+
```
|
|
73
|
+
1. [Step] → verify: [check]
|
|
74
|
+
2. [Step] → verify: [check]
|
|
75
|
+
3. [Step] → verify: [check]
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Strong success criteria let you loop independently. Weak criteria ("make it work") require constant clarification.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agemon-house-rules
|
|
3
|
+
description: Code-quality directives for simplicity, DRY architecture, zero-waste edits, self-documenting naming, surgical scope control, and goal-driven execution. Use when writing, editing, or reviewing code to keep changes minimal, readable, and traceable to the actual request.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agemon House Rules
|
|
7
|
+
|
|
8
|
+
A compact set of code-quality directives distilled from agemon's own repo-wide agent rules
|
|
9
|
+
([github.com/Korak-997/agemon](https://github.com/Korak-997/agemon), `AGENTS.md`). They cover the mechanics of
|
|
10
|
+
writing and editing code well — not what to build, but how to build it without leaving a mess.
|
|
11
|
+
|
|
12
|
+
## 1. Simplicity First
|
|
13
|
+
|
|
14
|
+
Minimum code that solves the problem. Nothing speculative.
|
|
15
|
+
|
|
16
|
+
- No features beyond what was asked.
|
|
17
|
+
- No abstractions built for single-use code.
|
|
18
|
+
- No "flexibility" or "configurability" that wasn't requested.
|
|
19
|
+
- No error handling for scenarios that can't occur.
|
|
20
|
+
- If a solution is 200 lines and could reasonably be 50, rewrite it.
|
|
21
|
+
|
|
22
|
+
Test: *"Would a senior engineer call this overcomplicated?"* If yes, simplify.
|
|
23
|
+
|
|
24
|
+
## 2. Modular, DRY Architecture
|
|
25
|
+
|
|
26
|
+
- Design solutions as independent, loosely coupled modules with a single responsibility each.
|
|
27
|
+
- Abstract genuinely repeated logic into reusable functions or classes — no logic duplicated across the
|
|
28
|
+
codebase.
|
|
29
|
+
- This does not override Rule 1. Modularize and abstract only where responsibilities are truly distinct or
|
|
30
|
+
logic is truly reused. Don't invent module boundaries or shared abstractions for one-off, single-use code
|
|
31
|
+
just to look "architected."
|
|
32
|
+
|
|
33
|
+
## 3. Zero-Waste Policy (scoped to your own changes)
|
|
34
|
+
|
|
35
|
+
- Code you write must contain no dead code, redundant variables, or unused imports.
|
|
36
|
+
- When your edits make existing code unreachable or unused (orphaned imports, variables, functions), remove
|
|
37
|
+
them.
|
|
38
|
+
- Do **not** remove pre-existing dead code or unrelated unused code outside your change — flag it instead of
|
|
39
|
+
touching it (see Rule 5).
|
|
40
|
+
|
|
41
|
+
## 4. Narrative Flow — Self-Documenting Code (strict)
|
|
42
|
+
|
|
43
|
+
- Code should read top-to-bottom like a clear narrative; a developer should be able to follow the logic
|
|
44
|
+
without jumping around or guessing.
|
|
45
|
+
- Use highly descriptive, semantic names (`process_pending_invoice_queue`, not `proc_inv`) — naming carries
|
|
46
|
+
the explanation, not comments.
|
|
47
|
+
- Replace magic numbers and unexplained literals with named, descriptive constants.
|
|
48
|
+
- **If code needs an explanation to be understood, that's a defect in the code, not a gap for a comment to
|
|
49
|
+
fill.** Rewrite, rename, or split it until it reads clearly on its own — in both writing and review, "what
|
|
50
|
+
does this do?" or "why is this here?" about *what*/*how* logic means it needs a rewrite, not a comment.
|
|
51
|
+
- Comments are allowed only for genuinely non-obvious *why* that can't be expressed in code at all — a
|
|
52
|
+
regulatory requirement, a workaround for a specific bug or library quirk, a non-obvious algorithmic choice.
|
|
53
|
+
Never use a comment to restate what the code already says, and never use one to explain *what*/*how*.
|
|
54
|
+
- Before finishing, re-read the changed code with its why-comments hidden. If the purpose or flow is unclear
|
|
55
|
+
without them, simplify or split it further before calling the task done.
|
|
56
|
+
|
|
57
|
+
## 5. Surgical Execution & Scope Control
|
|
58
|
+
|
|
59
|
+
- Touch only what the task requires. Every changed line should trace directly to the request.
|
|
60
|
+
- Don't "improve" adjacent code, comments, or formatting. Don't refactor things that aren't broken.
|
|
61
|
+
- Match existing style, even where you'd personally do it differently.
|
|
62
|
+
- When editing multiple files, apply and present changes file-by-file so mistakes are easy to catch. Within a
|
|
63
|
+
single file, deliver the edit as one consolidated change rather than fragmenting it across multiple partial
|
|
64
|
+
passes.
|
|
65
|
+
- If you notice bugs, tech debt, security gaps, or optimization opportunities outside the task's scope, name
|
|
66
|
+
them to the user rather than fixing them inline or staying silent — scope creep and silent omission are both
|
|
67
|
+
failure modes here.
|
|
68
|
+
|
|
69
|
+
## 6. Goal-Driven Execution
|
|
70
|
+
|
|
71
|
+
Define success criteria. Loop until verified.
|
|
72
|
+
|
|
73
|
+
- Translate vague tasks into verifiable goals:
|
|
74
|
+
- "Add validation" → "Write tests for invalid inputs, then make them pass."
|
|
75
|
+
- "Fix the bug" → "Write a test that reproduces it, then make it pass."
|
|
76
|
+
- "Refactor X" → "Ensure tests pass before and after."
|
|
77
|
+
- Consider realistic edge cases relevant to the task; use assertions where they add real safety, not as
|
|
78
|
+
decoration.
|
|
79
|
+
- For multi-step tasks, state a brief plan before executing:
|
|
80
|
+
```
|
|
81
|
+
1. [Step] → verify: [check]
|
|
82
|
+
2. [Step] → verify: [check]
|
|
83
|
+
3. [Step] → verify: [check]
|
|
84
|
+
```
|
|
85
|
+
- Strong success criteria allow independent looping; weak criteria ("make it work") force constant
|
|
86
|
+
clarification — avoid the latter.
|
|
87
|
+
|
|
88
|
+
## 7. Performance & Security by Default
|
|
89
|
+
|
|
90
|
+
- Every change, regardless of size, should consider the performance and security implications of the code it
|
|
91
|
+
touches — not just changes explicitly framed as "security" or "performance" work.
|
|
92
|
+
- Within the current task's scope, default to the most secure and performant reasonable option: parameterized
|
|
93
|
+
queries over string concatenation, proper input validation/sanitization, least-privilege access, avoiding
|
|
94
|
+
N+1 queries and unnecessary re-computation, etc.
|
|
95
|
+
- This does not license speculative optimization or defensive code nobody asked for — Rule 1 still applies.
|
|
96
|
+
- If a genuine security or performance issue exists but fixing it is outside the current change's scope, name
|
|
97
|
+
it rather than fixing it inline or leaving it unmentioned.
|
|
98
|
+
|
|
99
|
+
## When Rules Conflict
|
|
100
|
+
|
|
101
|
+
Rule 1 (Simplicity) is the tiebreaker against Rule 2 (Modularity) — don't abstract for its own sake. Rule 5
|
|
102
|
+
(Surgical scope) is the tiebreaker against every other rule when a task is ambiguous about how far to reach —
|
|
103
|
+
when in doubt, touch less, and say what you didn't touch and why.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agemon-commit
|
|
3
|
+
description: Use when writing a commit message or preparing a commit — staging review, message structure, splitting unrelated changes, and what belongs in the body vs. what doesn't.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agemon Commit Discipline
|
|
7
|
+
|
|
8
|
+
A compact set of rules for turning a diff into a commit. Covers what to check before staging, how to
|
|
9
|
+
structure the message, and when a diff should become more than one commit.
|
|
10
|
+
|
|
11
|
+
## 0. Never Commit — Hand Off the Message
|
|
12
|
+
|
|
13
|
+
- Never run `git commit` (or any command that creates a commit). Preparing the message is the job; creating
|
|
14
|
+
the commit is the user's.
|
|
15
|
+
- Output the finished commit message and let the user run the commit themselves.
|
|
16
|
+
- This holds even if the user has approved commits in this session before — never assume standing
|
|
17
|
+
permission to run `git commit` unless told explicitly and unambiguously that it applies going forward.
|
|
18
|
+
|
|
19
|
+
## 1. Before Staging
|
|
20
|
+
|
|
21
|
+
- Run `git status`, `git diff` (unstaged), and `git diff --cached` (staged) before deciding what goes in —
|
|
22
|
+
`git diff` alone omits already-staged changes, letting them bypass review. Never stage with a blanket
|
|
23
|
+
`git add -A` or `git add .` without reviewing what it picks up — untracked files may be scratch output,
|
|
24
|
+
credentials, or unrelated in-progress work.
|
|
25
|
+
- If `git status` shows files you didn't expect to touch, find out why before including them.
|
|
26
|
+
- Check diff contents, not just filenames, for anything that looks like a secret (`.env` values, tokens,
|
|
27
|
+
keys) even in files with innocuous names.
|
|
28
|
+
|
|
29
|
+
## 2. One Commit, One Change
|
|
30
|
+
|
|
31
|
+
- A commit should represent a single logical change. If the diff mixes an unrelated fix, a refactor, and a
|
|
32
|
+
feature, split it into separate commits rather than describing all three in one message.
|
|
33
|
+
- Don't bundle "while I was in there" cleanup with the actual change — that belongs in its own commit, if
|
|
34
|
+
it belongs at all (see agemon's Surgical Execution directive).
|
|
35
|
+
|
|
36
|
+
## 3. Message Structure
|
|
37
|
+
|
|
38
|
+
This repo enforces [Conventional Commits](https://www.conventionalcommits.org/) — via `.githooks/commit-msg`
|
|
39
|
+
locally and `commitlint` + PR-title linting in CI. Every subject line must use the required format, not just
|
|
40
|
+
as a style preference:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
<type>[(scope)][!]: <description>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
- Allowed types: `feat`, `fix`, `perf`, `refactor`, `docs`, `test`, `build`, `ci`, `chore`, `revert` (matches
|
|
47
|
+
`.githooks/commit-msg`).
|
|
48
|
+
- Scope is optional, lowercase, and names a module/concept (`auth`, `installer`) — not a specific filename.
|
|
49
|
+
- Description: imperative mood ("add", "fix", "remove" — not "added", "adds", "fixing"), lowercase after the
|
|
50
|
+
colon, no trailing period.
|
|
51
|
+
- Subject line under ~50 characters where possible, hard cap ~72.
|
|
52
|
+
- If the change breaks backward compatibility, append `!` before the colon (`feat(api)!: ...`) **and** add a
|
|
53
|
+
`BREAKING CHANGE:` footer explaining the break.
|
|
54
|
+
- Lead the body with *why*, not *what*. The diff already shows what changed; a reader with the diff open
|
|
55
|
+
doesn't need it repeated in prose. State the reason, motivation, or problem being solved.
|
|
56
|
+
- Use a body only when the subject line can't carry the necessary context — a one-line change with an
|
|
57
|
+
obvious reason doesn't need one. Wrap body lines at ~72 characters, separated from the subject by one
|
|
58
|
+
blank line.
|
|
59
|
+
|
|
60
|
+
## 4. Follow Existing Convention
|
|
61
|
+
|
|
62
|
+
- Before writing a message, check `git log --oneline -20` on the current repo to confirm the prevailing
|
|
63
|
+
style still matches Section 3 (type casing, scope naming). Match it.
|
|
64
|
+
- The type prefix itself is never optional in this repo — the commit-msg hook and CI both reject a subject
|
|
65
|
+
line without one, so there is no "no convention discernible" fallback to a bare imperative subject.
|
|
66
|
+
|
|
67
|
+
## 5. Issue References — Always Ask
|
|
68
|
+
|
|
69
|
+
- Before finalizing any commit message, ask the user whether this commit should close an issue, and if so,
|
|
70
|
+
what to include:
|
|
71
|
+
- **Closes/Fixes #N** — use only when this commit fully resolves the issue; it auto-closes on merge.
|
|
72
|
+
- **Refs #N** / "Relates to #N" — use when the commit is related but doesn't fully resolve the issue; it
|
|
73
|
+
links without closing.
|
|
74
|
+
- Never invent an issue number, and never guess Closes vs. Refs on the user's behalf — always confirm which
|
|
75
|
+
one they want, and for which number, even if a plausible issue seems implied by the task.
|
|
76
|
+
- Don't mix `Closes` and `Refs` for the same issue across multiple commits on one branch.
|
|
77
|
+
|
|
78
|
+
## 6. What Not to Do
|
|
79
|
+
|
|
80
|
+
- Don't claim a commit "fixes" or "resolves" something without having verified it (see
|
|
81
|
+
`agemon-verify-before-done`) — a commit message is a durable record, and false claims in it mislead
|
|
82
|
+
future readers doing `git blame` archaeology.
|
|
83
|
+
- Never add attribution, co-author, or tool-generated lines (e.g. `Co-Authored-By: <agent name>`,
|
|
84
|
+
"Generated with ..."). The message is authored by the user; it carries no mention of the agent or tool
|
|
85
|
+
that drafted it, even if a session-level default elsewhere suggests otherwise.
|
|
86
|
+
- Don't amend or rewrite history (`commit --amend`, rebase) on commits already pushed or shared, and never
|
|
87
|
+
force-push, without explicit confirmation.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Eduardo Calvo
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Vendored skill
|
|
2
|
+
|
|
3
|
+
- Source: https://github.com/educlopez/ui-craft
|
|
4
|
+
- Path in source: skills/ui-craft
|
|
5
|
+
- Commit: 433b749b8a905583c239ebf5d39842cb4f518aa9
|
|
6
|
+
- Retrieved: 2026-08-17
|
|
7
|
+
- License: MIT — see `LICENSE` in this directory.
|
|
8
|
+
|
|
9
|
+
- Renamed from `ui-craft` to `agemon-design` for agemon branding — installed skills should read as agemon's own, not a third-party project name.
|