azclaude-copilot 0.4.30 → 0.4.32
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +2 -2
- package/bin/cli.js +21 -9
- package/package.json +1 -1
- package/templates/hooks/pre-tool-use.js +24 -0
- package/templates/skills/security/SKILL.md +5 -4
- package/templates/skills/security/references/security-details.md +9 -1
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
{
|
|
10
10
|
"name": "azclaude",
|
|
11
11
|
"description": "AZCLAUDE is a complete AI coding environment for Claude Code. It installs 34 commands, 9 auto-invoked skills, 15 specialized agents, 4 hooks, and a persistent memory system — in one command.\n\nKey features:\n• Memory across sessions — goals.md + checkpoints injected automatically before every session\n• Self-improving loop — /reflect fixes stale CLAUDE.md rules, /reflexes learns from tool-use patterns, /evolve creates agents from git evidence\n• Autonomous copilot mode — /copilot runs a three-tier team (orchestrator → problem-architect → milestone-builder) across sessions until the product ships\n• Spec-driven workflow — /constitute writes project rules, /spec writes structured ACs, /analyze detects plan drift and ghost milestones, /blueprint traces every milestone to a spec\n• Security layer — 111-rule environment scan (/sentinel), pre-write secret blocking, pre-ship credential audit\n• Progressive levels 0–10 — start with CLAUDE.md, grow into multi-agent pipelines and self-evolving environments\n• Zero dependencies — no npm packages, no external APIs, no vector databases. Plain markdown files and Claude Code's native architecture.\n• Smart install — npx azclaude-copilot@latest auto-detects first install vs upgrade vs verify. Context-aware onboarding shows the right next command for your project state.\n\nExample use cases:\n• /setup — scan an existing project, detect stack + domain + scale, fill CLAUDE.md, generate project-specific skills and agents automatically\n• /copilot \"Build a compliance SaaS with trilingual support\" — walk away, come back to working code across multiple sessions\n• /sentinel — run a scored security audit (0–100, grade A–F) across hooks, permissions, MCP servers, agent configs, and secrets\n• /evolve — detect gaps in the environment, generate new skills and agents from git co-change evidence, report score delta (e.g. 42/100 → 68/100)\n• /constitute — write your project's constitution (non-negotiables, architectural commitments, definition of done) — gates all future AI actions\n• /analyze — cross-artifact consistency check: ghost milestones, spec vs. code drift, unplanned commits\n• /reflect — find stale, missing, or contradicting rules in CLAUDE.md and propose exact fixes\n• /debate \"REST vs GraphQL for this project\" — adversarial evidence-based decision with order-independent scoring, logged to decisions.md",
|
|
12
|
-
"version": "0.4.
|
|
12
|
+
"version": "0.4.32",
|
|
13
13
|
"source": {
|
|
14
14
|
"source": "github",
|
|
15
15
|
"repo": "haytamAroui/AZ-CLAUDE-COPILOT",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "azclaude",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.32",
|
|
4
4
|
"description": "AZCLAUDE is a complete AI coding environment for Claude Code. It installs 34 commands, 9 auto-invoked skills, 15 specialized agents, 4 hooks, and a persistent memory system — in one command.\n\nKey features:\n• Memory across sessions — goals.md + checkpoints injected automatically before every session\n• Self-improving loop — /reflect fixes stale CLAUDE.md rules, /reflexes learns from tool-use patterns, /evolve creates agents from git evidence\n• Autonomous copilot mode — /copilot runs a three-tier team (orchestrator → problem-architect → milestone-builder) across sessions until the product ships\n• Spec-driven workflow — /constitute writes project rules, /spec writes structured ACs, /analyze detects plan drift and ghost milestones, /blueprint traces every milestone to a spec\n• Security layer — 111-rule environment scan (/sentinel), pre-write secret blocking, pre-ship credential audit\n• Progressive levels 0–10 — start with CLAUDE.md, grow into multi-agent pipelines and self-evolving environments\n• Zero dependencies — no npm packages, no external APIs, no vector databases. Plain markdown files and Claude Code's native architecture.\n• Smart install — npx azclaude-copilot@latest auto-detects first install vs upgrade vs verify. Context-aware onboarding shows the right next command for your project state.\n\nExample use cases:\n• /setup — scan an existing project, detect stack + domain + scale, fill CLAUDE.md, generate project-specific skills and agents automatically\n• /copilot \"Build a compliance SaaS with trilingual support\" — walk away, come back to working code across multiple sessions\n• /sentinel — run a scored security audit (0–100, grade A–F) across hooks, permissions, MCP servers, agent configs, and secrets\n• /evolve — detect gaps in the environment, generate new skills and agents from git co-change evidence, report score delta (e.g. 42/100 → 68/100)\n• /constitute — write your project's constitution (non-negotiables, architectural commitments, definition of done) — gates all future AI actions\n• /analyze — cross-artifact consistency check: ghost milestones, spec vs. code drift, unplanned commits\n• /reflect — find stale, missing, or contradicting rules in CLAUDE.md and propose exact fixes\n• /debate \"REST vs GraphQL for this project\" — adversarial evidence-based decision with order-independent scoring, logged to decisions.md",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "haytamAroui",
|
package/README.md
CHANGED
|
@@ -807,11 +807,11 @@ Run `/level-up` at any time to see your current level and build the next one.
|
|
|
807
807
|
|
|
808
808
|
## Verified
|
|
809
809
|
|
|
810
|
-
|
|
810
|
+
1462 tests. Every template, command, capability, agent, hook, and CLI feature verified.
|
|
811
811
|
|
|
812
812
|
```bash
|
|
813
813
|
bash tests/test-features.sh
|
|
814
|
-
# Results:
|
|
814
|
+
# Results: 1462 passed, 0 failed, 1462 total
|
|
815
815
|
```
|
|
816
816
|
|
|
817
817
|
---
|
package/bin/cli.js
CHANGED
|
@@ -1194,32 +1194,44 @@ if (hasPlan && hasPendingMilestones) {
|
|
|
1194
1194
|
console.log('\n════════════════════════════════════════════════');
|
|
1195
1195
|
console.log(` AZCLAUDE v${currentVer} — ${isFirstInstall ? 'installed' : needsUpgrade ? 'upgraded' : 'up to date'}`);
|
|
1196
1196
|
console.log('');
|
|
1197
|
+
|
|
1198
|
+
// First-time users get a one-liner orientation
|
|
1199
|
+
if (isFirstInstall) {
|
|
1200
|
+
console.log(' AI coding commands for Claude Code: /setup, /add, /fix,');
|
|
1201
|
+
console.log(' /copilot, /ship and 29 more. Run them inside Claude Code.');
|
|
1202
|
+
console.log('');
|
|
1203
|
+
}
|
|
1204
|
+
|
|
1197
1205
|
console.log(' Open Claude Code in this directory, then:');
|
|
1198
1206
|
console.log('');
|
|
1199
1207
|
|
|
1200
1208
|
if (onboardingPath === 'RESUME') {
|
|
1201
|
-
console.log('
|
|
1209
|
+
console.log(' A plan with pending work was found:');
|
|
1202
1210
|
console.log('');
|
|
1203
|
-
console.log(' /copilot resume autonomous build');
|
|
1204
1211
|
console.log(' /pulse see current state first');
|
|
1212
|
+
console.log(' /copilot resume autonomous build');
|
|
1205
1213
|
console.log(' /analyze plan verify plan vs reality');
|
|
1214
|
+
console.log('');
|
|
1215
|
+
console.log(' Starting fresh instead?');
|
|
1216
|
+
console.log('');
|
|
1217
|
+
console.log(' /setup (re)configure this project');
|
|
1206
1218
|
} else if (onboardingPath === 'EXISTING') {
|
|
1207
1219
|
console.log(' Existing project detected:');
|
|
1208
1220
|
console.log('');
|
|
1209
|
-
console.log(' /setup scan + configure this project');
|
|
1210
|
-
console.log(' /
|
|
1211
|
-
console.log(' /
|
|
1212
|
-
console.log(' /copilot
|
|
1221
|
+
console.log(' /setup scan + configure this project ← start here');
|
|
1222
|
+
console.log(' /add [feature] start building immediately');
|
|
1223
|
+
console.log(' /dream plan a full product first');
|
|
1224
|
+
console.log(' /copilot build autonomously');
|
|
1213
1225
|
} else {
|
|
1214
1226
|
console.log(' New project:');
|
|
1215
1227
|
console.log('');
|
|
1216
|
-
console.log(' /setup configure this project');
|
|
1228
|
+
console.log(' /setup configure this project ← start here');
|
|
1217
1229
|
console.log(' /add [feature] start building immediately');
|
|
1218
1230
|
console.log(' /dream plan a full product first');
|
|
1219
1231
|
}
|
|
1220
1232
|
|
|
1221
1233
|
console.log('');
|
|
1222
1234
|
console.log(' ─────────────────────────────────────────────');
|
|
1223
|
-
console.log(' docs:
|
|
1224
|
-
console.log(' upgrade:
|
|
1235
|
+
console.log(' all commands: /help · docs: github.com/haytamAroui/AZ-CLAUDE-COPILOT');
|
|
1236
|
+
console.log(' upgrade: npx azclaude-copilot@latest');
|
|
1225
1237
|
console.log('════════════════════════════════════════════════\n');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "azclaude-copilot",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.32",
|
|
4
4
|
"description": "AI coding environment — 34 commands, 9 skills, 15 agents, memory, reflexes, evolution. Install: npx azclaude-copilot@latest, then open Claude Code.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"azclaude": "bin/cli.js",
|
|
@@ -191,6 +191,30 @@ const RULES = [
|
|
|
191
191
|
message: 'Prompt injection pattern detected in file being written — this content could hijack AI agent context when read. Matches known CVE-2025-54794 attack vector. Review before proceeding.',
|
|
192
192
|
block: false,
|
|
193
193
|
},
|
|
194
|
+
{
|
|
195
|
+
id: 'c-gets',
|
|
196
|
+
test: /\bgets\s*\(/,
|
|
197
|
+
message: 'gets() detected — buffer overflow vulnerability (removed from C11). Use fgets() or getline() with explicit bounds.',
|
|
198
|
+
block: false,
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
id: 'php-shell-exec',
|
|
202
|
+
test: /\bshell_exec\s*\(/,
|
|
203
|
+
message: 'shell_exec() detected — command injection risk. Use escapeshellarg() or avoid shell execution entirely.',
|
|
204
|
+
block: false,
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
id: 'java-runtime-exec',
|
|
208
|
+
test: /Runtime\.getRuntime\(\)\.exec\s*\(/,
|
|
209
|
+
message: 'Runtime.exec() detected — command injection risk. Use ProcessBuilder with a String[] argument array instead.',
|
|
210
|
+
block: false,
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
id: 'jinja2-ssti',
|
|
214
|
+
test: /render_template_string\s*\(/,
|
|
215
|
+
message: 'render_template_string() detected — server-side template injection risk. Use render_template() with a file-based template instead.',
|
|
216
|
+
block: false,
|
|
217
|
+
},
|
|
194
218
|
{
|
|
195
219
|
id: 'subprocess-shell-true',
|
|
196
220
|
test: /subprocess\.(run|Popen|call|check_output)\s*\([^)]*shell\s*=\s*True/,
|
|
@@ -47,13 +47,14 @@ All hooks share `/tmp/.azclaude-seclog-{PID}` (JSONL). Session summary printed a
|
|
|
47
47
|
Warns (once per session) when Claude reads credential files:
|
|
48
48
|
`.env`, `.env.*`, `secrets.json`, `secrets.yaml`, `credentials.json`, `id_rsa`, `id_ed25519`, `id_ecdsa`, `id_dsa`, `.pem`, `.p12`, `.pfx`, `.keystore`
|
|
49
49
|
|
|
50
|
-
## Write Gate —
|
|
50
|
+
## Write Gate — 19 Rules (pre-tool-use.js)
|
|
51
51
|
Scans all Edit/Write content before writing. Secrets → **Block** (exit 2). Others → Warn.
|
|
52
52
|
|
|
53
53
|
Key patterns: `eval(`, `child_process.exec(`, `dangerouslySetInnerHTML`, `pickle.load(`,
|
|
54
|
-
`os.system(`, `subprocess(..., shell=True)`, `
|
|
55
|
-
`
|
|
56
|
-
|
|
54
|
+
`os.system(`, `subprocess(..., shell=True)`, `gets(`, `shell_exec(`,
|
|
55
|
+
`Runtime.getRuntime().exec(`, `render_template_string(`,
|
|
56
|
+
`MD5`/`SHA1`/`Math.random()`, `__proto__`, `yaml.load(`, `../` traversal,
|
|
57
|
+
`ignore previous instructions`, AWS/GH/GL/Slack/npm/GCP/Stripe/SendGrid/PEM tokens.
|
|
57
58
|
|
|
58
59
|
For fix guidance per pattern: `references/security-details.md`
|
|
59
60
|
|
|
@@ -15,7 +15,7 @@ Claude plans & calls tools
|
|
|
15
15
|
[pre-tool-use.js] — intercepts 3 tool types before execution:
|
|
16
16
|
Bash → blocks curl|bash RCE, destructive rm; warns npm install, env var echo
|
|
17
17
|
Read → warns on credential file access (.env, secrets.json, id_rsa, .pem)
|
|
18
|
-
Write →
|
|
18
|
+
Write → 19 code vulnerability pattern rules (see table below)
|
|
19
19
|
↓ ↓
|
|
20
20
|
[post-tool-use.js] /tmp/.azclaude-seclog-{PID}
|
|
21
21
|
behavioral sequence ↑ shared session event log
|
|
@@ -88,6 +88,10 @@ Scans all Edit/Write/MultiEdit operations. Warnings → stderr. Secrets → exit
|
|
|
88
88
|
| `path-traversal` | `../` in file paths | Any | Arbitrary file read/write | Warn |
|
|
89
89
|
| `prompt-injection-write` | `ignore previous instructions` / `{"role":"user","content":` | Any | AI context hijack (CVE-2025-54794) | Warn |
|
|
90
90
|
| `subprocess-shell-true` | `subprocess.run(..., shell=True)` / `subprocess.Popen(..., shell=True)` | Python | Command injection via shell metacharacters | Warn |
|
|
91
|
+
| `c-gets` | `gets(` | C/C++ | Buffer overflow (removed from C11) | Warn |
|
|
92
|
+
| `php-shell-exec` | `shell_exec(` | PHP | Command injection | Warn |
|
|
93
|
+
| `java-runtime-exec` | `Runtime.getRuntime().exec(` | Java/Kotlin | Command injection | Warn |
|
|
94
|
+
| `jinja2-ssti` | `render_template_string(` | Python/Flask | Server-side template injection | Warn |
|
|
91
95
|
| `hardcoded-secret` | AWS/GH/GL/Slack/npm/GCP/Stripe/SendGrid/PEM key tokens | Any | Credential exposure | **Block** |
|
|
92
96
|
|
|
93
97
|
**Fix guidance per pattern:**
|
|
@@ -102,6 +106,10 @@ Scans all Edit/Write/MultiEdit operations. Warnings → stderr. Secrets → exit
|
|
|
102
106
|
- `yaml-unsafe-load` → use `yaml.safe_load()` — always
|
|
103
107
|
- `path-traversal` → use `path.resolve()` + validate result starts with allowed base dir
|
|
104
108
|
- `prompt-injection-write` → review content before writing to files that will be read by AI agents; never embed instruction-like text in project files
|
|
109
|
+
- `c-gets` → use `fgets(buf, sizeof(buf), stdin)` or `getline()` — always specify buffer bounds
|
|
110
|
+
- `php-shell-exec` → use `escapeshellarg()` / `escapeshellcmd()`, or avoid shell calls entirely
|
|
111
|
+
- `java-runtime-exec` → use `new ProcessBuilder(List.of("cmd", "arg1")).start()` with a String array
|
|
112
|
+
- `jinja2-ssti` → use `render_template("file.html", ...)` with a file-based template, never render raw strings
|
|
105
113
|
- `hardcoded-secret` → use environment variables (`process.env.MY_SECRET` / `os.environ['MY_SECRET']`)
|
|
106
114
|
|
|
107
115
|
---
|