@etus/bhono-app 0.1.6 → 0.1.7
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/package.json +3 -2
- package/templates/base/.claude/commands/check-skill-rules.md +112 -29
- package/templates/base/.claude/commands/linear/implement-issue.md +383 -55
- package/templates/base/.claude/commands/ship.md +77 -13
- package/templates/base/.claude/hooks/package-lock.json +0 -419
- package/templates/base/.claude/hooks/skill-activation-prompt.ts +185 -113
- package/templates/base/.claude/hooks/skill-tool-guard.sh +6 -0
- package/templates/base/.claude/hooks/skill-tool-guard.ts +198 -0
- package/templates/base/.claude/scripts/validate-skill-rules.sh +55 -32
- package/templates/base/.claude/settings.json +18 -11
- package/templates/base/.claude/skills/skill-rules.json +326 -173
- package/templates/base/.env.example +3 -0
- package/templates/base/README.md +9 -7
- package/templates/base/config/eslint.config.js +1 -0
- package/templates/base/config/wrangler.json +16 -17
- package/templates/base/docs/SETUP-GUIDE.md +566 -0
- package/templates/base/docs/architecture/README.md +162 -8
- package/templates/base/docs/architecture/api-catalog.md +575 -0
- package/templates/base/docs/architecture/c4-component.md +309 -0
- package/templates/base/docs/architecture/c4-container.md +183 -0
- package/templates/base/docs/architecture/c4-context.md +106 -0
- package/templates/base/docs/architecture/dependencies.md +327 -0
- package/templates/base/docs/architecture/tech-debt.md +184 -0
- package/templates/base/package.json +20 -15
- package/templates/base/scripts/capture-prod-session.ts +2 -2
- package/templates/base/scripts/sync-template.sh +104 -0
- package/templates/base/src/server/db/sql.ts +24 -4
- package/templates/base/src/server/index.ts +1 -0
- package/templates/base/src/server/lib/audited-db.ts +10 -10
- package/templates/base/src/server/middleware/account.ts +1 -1
- package/templates/base/src/server/middleware/auth.ts +11 -11
- package/templates/base/src/server/middleware/rate-limit.ts +3 -6
- package/templates/base/src/server/routes/auth/handlers.ts +5 -5
- package/templates/base/src/server/routes/auth/test-login.ts +9 -9
- package/templates/base/src/server/routes/index.ts +9 -0
- package/templates/base/src/server/routes/invitations/handlers.ts +6 -6
- package/templates/base/src/server/routes/openapi.ts +1 -1
- package/templates/base/src/server/services/accounts.ts +9 -9
- package/templates/base/src/server/services/audits.ts +12 -12
- package/templates/base/src/server/services/auth.ts +15 -15
- package/templates/base/src/server/services/invitations.ts +16 -16
- package/templates/base/src/server/services/users.ts +13 -13
- package/templates/base/src/shared/types/api.ts +66 -198
- package/templates/base/tests/e2e/auth.setup.ts +1 -1
- package/templates/base/tests/unit/server/auth/guards.test.ts +1 -1
- package/templates/base/tests/unit/server/middleware/auth.test.ts +273 -0
- package/templates/base/tests/unit/server/routes/auth/handlers.test.ts +111 -0
- package/templates/base/tests/unit/server/routes/users/handlers.test.ts +69 -5
- package/templates/base/tests/unit/server/services/accounts.test.ts +148 -0
- package/templates/base/tests/unit/server/services/audits.test.ts +219 -0
- package/templates/base/tests/unit/server/services/auth.test.ts +480 -3
- package/templates/base/tests/unit/server/services/invitations.test.ts +178 -0
- package/templates/base/tests/unit/server/services/users.test.ts +363 -8
- package/templates/base/tests/unit/shared/schemas.test.ts +1 -1
- package/templates/base/vite.config.ts +3 -1
- package/templates/base/.github/workflows/test.yml +0 -127
- package/templates/base/.husky/pre-push +0 -26
- package/templates/base/auth-setup-error.png +0 -0
- package/templates/base/pnpm-lock.yaml +0 -8052
- package/templates/base/tests/e2e/_auth/.gitkeep +0 -0
- package/templates/base/tsconfig.tsbuildinfo +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@etus/bhono-app",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
"build": "tsc",
|
|
18
18
|
"dev": "tsc --watch",
|
|
19
19
|
"start": "node dist/index.js",
|
|
20
|
-
"
|
|
20
|
+
"sync": "cd ../.. && ./scripts/sync-template.sh",
|
|
21
|
+
"prepublishOnly": "npm run sync && npm run build",
|
|
21
22
|
"test": "vitest",
|
|
22
23
|
"test:run": "vitest run"
|
|
23
24
|
},
|
|
@@ -4,50 +4,133 @@ description: Check if all skills are mapped in skill-rules.json and report any m
|
|
|
4
4
|
|
|
5
5
|
# Check Skill Rules Mapping
|
|
6
6
|
|
|
7
|
-
Audit the skill-rules.json file against actual skill directories
|
|
8
|
-
1. **Unmapped skills** - Skills that exist but aren't in skill-rules.json
|
|
9
|
-
2. **Orphaned entries** - Entries in skill-rules.json that have no matching skill
|
|
7
|
+
Audit the skill-rules.json file against actual skill directories and validate the hook system.
|
|
10
8
|
|
|
11
9
|
## Instructions
|
|
12
10
|
|
|
13
|
-
1.
|
|
14
|
-
- List all directories (skills are directories, not files)
|
|
15
|
-
- Exclude `skill-rules.json` (it's the config file, not a skill)
|
|
11
|
+
### 1. Validate Hook System
|
|
16
12
|
|
|
17
|
-
|
|
18
|
-
- List all directories there too
|
|
13
|
+
First, check that all hooks are properly configured:
|
|
19
14
|
|
|
20
|
-
|
|
15
|
+
```bash
|
|
16
|
+
# Check hooks exist and are executable
|
|
17
|
+
ls -la .claude/hooks/*.sh
|
|
21
18
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
### Output Format
|
|
19
|
+
# Test skill-activation-prompt hook
|
|
20
|
+
echo '{"session_id":"test","prompt":"analyze architecture"}' | .claude/hooks/skill-activation-prompt.sh
|
|
25
21
|
|
|
22
|
+
# Test skill-tool-guard hook
|
|
23
|
+
echo '{"session_id":"test","tool_name":"Bash","tool_input":{"command":"git push"}}' | .claude/hooks/skill-tool-guard.sh
|
|
26
24
|
```
|
|
27
|
-
## Skill Rules Audit
|
|
28
25
|
|
|
29
|
-
###
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
### 2. Find All Skills
|
|
27
|
+
|
|
28
|
+
**Project skills** in `.claude/skills/`:
|
|
29
|
+
- List all `.md` files (skills are markdown files)
|
|
30
|
+
- Exclude `skill-rules.json` (config file)
|
|
31
|
+
|
|
32
|
+
**User skills** in `~/.claude/skills/`:
|
|
33
|
+
- List all `.md` files
|
|
34
|
+
|
|
35
|
+
**Plugin skills** (from enabled plugins):
|
|
36
|
+
- Check `superpowers:*` skills
|
|
37
|
+
- Check other plugin namespaced skills
|
|
38
|
+
|
|
39
|
+
### 3. Read skill-rules.json
|
|
40
|
+
|
|
41
|
+
Extract from the `skills` object:
|
|
42
|
+
- Skill names (keys)
|
|
43
|
+
- For each skill:
|
|
44
|
+
- `promptTriggers` (keywords + intentPatterns)
|
|
45
|
+
- `toolGuards` (tool + patterns)
|
|
46
|
+
- `enforcement` level
|
|
47
|
+
- `priority` level
|
|
48
|
+
|
|
49
|
+
### 4. Compare and Report
|
|
50
|
+
|
|
51
|
+
## Output Format
|
|
52
|
+
|
|
53
|
+
```markdown
|
|
54
|
+
## Skill Rules Audit (v1.2)
|
|
33
55
|
|
|
34
|
-
###
|
|
35
|
-
|
|
|
36
|
-
|
|
37
|
-
| skill-
|
|
56
|
+
### Hook System Status
|
|
57
|
+
| Hook | File Exists | Executable | Test |
|
|
58
|
+
|------|-------------|------------|------|
|
|
59
|
+
| skill-activation-prompt | ✅/❌ | ✅/❌ | ✅/❌ |
|
|
60
|
+
| skill-tool-guard | ✅/❌ | ✅/❌ | ✅/❌ |
|
|
38
61
|
|
|
39
|
-
###
|
|
40
|
-
|
|
|
41
|
-
|
|
42
|
-
|
|
|
62
|
+
### Local Skills (.claude/skills/)
|
|
63
|
+
| Skill | In Rules | promptTriggers | toolGuards |
|
|
64
|
+
|-------|----------|----------------|------------|
|
|
65
|
+
| skill-name | ✅/❌ | X keywords, Y patterns | Z guards |
|
|
66
|
+
|
|
67
|
+
### Plugin Skills (superpowers, etc)
|
|
68
|
+
| Skill | In Rules | promptTriggers | toolGuards |
|
|
69
|
+
|-------|----------|----------------|------------|
|
|
70
|
+
| superpowers:skill-name | ✅/❌ | X keywords, Y patterns | Z guards |
|
|
71
|
+
|
|
72
|
+
### Orphaned Entries (in rules but no matching skill)
|
|
73
|
+
| Entry | Type | Issue |
|
|
74
|
+
|-------|------|-------|
|
|
75
|
+
| entry-name | local/plugin | No skill file/plugin found |
|
|
76
|
+
|
|
77
|
+
### Tool Guard Coverage
|
|
78
|
+
| Tool | Skills with Guards |
|
|
79
|
+
|------|-------------------|
|
|
80
|
+
| Bash | skill1, skill2 |
|
|
81
|
+
| Edit | skill3 |
|
|
82
|
+
| Write | skill4 |
|
|
43
83
|
|
|
44
84
|
### Summary
|
|
45
|
-
-
|
|
46
|
-
-
|
|
85
|
+
- Local skills: X mapped, Y unmapped
|
|
86
|
+
- Plugin skills: X mapped, Y unmapped
|
|
47
87
|
- Orphaned entries: Z
|
|
88
|
+
- Skills with promptTriggers: N
|
|
89
|
+
- Skills with toolGuards: M
|
|
90
|
+
- Hooks status: OK/ISSUES
|
|
48
91
|
|
|
49
92
|
### Recommended Actions
|
|
50
|
-
[If there are
|
|
93
|
+
[If there are issues, suggest specific fixes]
|
|
51
94
|
```
|
|
52
95
|
|
|
53
|
-
5.
|
|
96
|
+
### 5. Validation Checks
|
|
97
|
+
|
|
98
|
+
Verify for each skill in rules:
|
|
99
|
+
- [ ] Has at least `promptTriggers` OR `toolGuards`
|
|
100
|
+
- [ ] `enforcement` is valid (suggest/warn/block)
|
|
101
|
+
- [ ] `priority` is valid (critical/high/medium/low)
|
|
102
|
+
- [ ] `toolGuards` patterns are valid regex
|
|
103
|
+
- [ ] `intentPatterns` are valid regex
|
|
104
|
+
|
|
105
|
+
### 6. Auto-fix Option
|
|
106
|
+
|
|
107
|
+
If there are discrepancies, ask if I want you to:
|
|
108
|
+
1. Add missing skills to skill-rules.json with default config
|
|
109
|
+
2. Remove orphaned entries
|
|
110
|
+
3. Fix invalid patterns
|
|
111
|
+
|
|
112
|
+
## Current skill-rules.json Structure (v1.2)
|
|
113
|
+
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"version": "1.2",
|
|
117
|
+
"skills": {
|
|
118
|
+
"skill-name": {
|
|
119
|
+
"type": "domain|guardrail",
|
|
120
|
+
"enforcement": "suggest|warn|block",
|
|
121
|
+
"priority": "critical|high|medium|low",
|
|
122
|
+
"description": "What this skill does",
|
|
123
|
+
"promptTriggers": {
|
|
124
|
+
"keywords": ["exact match words"],
|
|
125
|
+
"intentPatterns": ["regex patterns"]
|
|
126
|
+
},
|
|
127
|
+
"toolGuards": [
|
|
128
|
+
{
|
|
129
|
+
"tool": "Bash|Edit|Write|Read|Glob|Task|*",
|
|
130
|
+
"patterns": ["regex to match tool input"]
|
|
131
|
+
}
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
```
|