universal-agent-memory 1.0.16 → 1.0.17
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 +1 -1
- package/templates/CLAUDE.template.md +68 -34
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "universal-agent-memory",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.17",
|
|
4
4
|
"description": "Universal AI agent memory system - CLAUDE.md templates, memory, worktrees for Claude Code, Factory.AI, VSCode, OpenCode",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
CLAUDE.md Universal Template - v10.
|
|
2
|
+
CLAUDE.md Universal Template - v10.12
|
|
3
3
|
|
|
4
4
|
CHANGES IN THIS VERSION:
|
|
5
|
+
- SECRETS CLARIFICATION: All secrets in GitHub, secret-dependent ops MUST use pipelines
|
|
6
|
+
- Ephemeral pipelines for one-time secret operations (self-destruct after run)
|
|
7
|
+
- Local testing limited to non-secret operations (read-only kubectl, cloud console)
|
|
8
|
+
- Clear pipeline routing table for secret-dependent operations
|
|
9
|
+
|
|
10
|
+
PREVIOUS (v10.11):
|
|
5
11
|
- INFRASTRUCTURE POLICY UPDATE: Local testing now ALLOWED for proving solutions
|
|
6
12
|
- IaC parity MANDATORY before completion (test locally, then codify in IaC)
|
|
7
13
|
- Two-phase workflow: Phase 1 (local proof) → Phase 2 (IaC parity verification)
|
|
@@ -209,24 +215,38 @@ Under what conditions does this work?
|
|
|
209
215
|
|
|
210
216
|
**Local testing is ALLOWED for proving solutions. IaC parity is MANDATORY before completion.**
|
|
211
217
|
|
|
218
|
+
### Critical: Secrets Are in GitHub
|
|
219
|
+
|
|
220
|
+
**ALL secrets are stored in GitHub Actions secrets.** Operations requiring secrets MUST use pipelines:
|
|
221
|
+
|
|
222
|
+
| If operation needs... | Use this pipeline |
|
|
223
|
+
|-----------------------|-------------------|
|
|
224
|
+
| Terraform with secrets | `iac-terraform-cicd.yml` or `ops-ephemeral-terraform.yml` |
|
|
225
|
+
| kubectl with secrets | `ops-approved-operations.yml` |
|
|
226
|
+
| One-time secret operation | `ops-create-ephemeral.yml` (self-destructs after run) |
|
|
227
|
+
|
|
228
|
+
**Local commands without secrets** (read-only, public resources) are allowed for testing.
|
|
229
|
+
|
|
212
230
|
### Two-Phase Infrastructure Workflow
|
|
213
231
|
|
|
214
232
|
```
|
|
215
233
|
┌─────────────────────────────────────────────────────────────────┐
|
|
216
|
-
│ PHASE 1: LOCAL PROOF (ALLOWED)
|
|
234
|
+
│ PHASE 1: LOCAL PROOF (ALLOWED - NO SECRETS) │
|
|
217
235
|
│ ───────────────────────────────────────────────────────────── │
|
|
218
|
-
│ ✓ kubectl
|
|
219
|
-
│ ✓ terraform plan
|
|
236
|
+
│ ✓ kubectl get/describe/logs (read-only operations) │
|
|
237
|
+
│ ✓ terraform plan (uses GitHub pipeline for secrets) │
|
|
220
238
|
│ ✓ Direct cloud console changes for rapid prototyping │
|
|
221
|
-
│ ✓ Manual commands to verify behavior
|
|
239
|
+
│ ✓ Manual commands to verify behavior (public resources) │
|
|
240
|
+
│ │
|
|
241
|
+
│ ⚠️ SECRETS REQUIRED? → Use pipeline, not local commands │
|
|
222
242
|
│ │
|
|
223
243
|
│ PURPOSE: Prove the solution works before codifying │
|
|
224
244
|
├─────────────────────────────────────────────────────────────────┤
|
|
225
|
-
│ PHASE 2: IaC PARITY (MANDATORY)
|
|
245
|
+
│ PHASE 2: IaC PARITY (MANDATORY - VIA PIPELINE) │
|
|
226
246
|
│ ───────────────────────────────────────────────────────────── │
|
|
227
247
|
│ ☐ Translate ALL manual changes to Terraform/Kubernetes YAML │
|
|
228
248
|
│ ☐ Commit IaC changes to feature branch │
|
|
229
|
-
│ ☐ Run `terraform plan`
|
|
249
|
+
│ ☐ Run `terraform plan` via pipeline (has secrets) │
|
|
230
250
|
│ ☐ Deploy via pipeline to confirm 100% match │
|
|
231
251
|
│ ☐ Delete any manual/ephemeral resources │
|
|
232
252
|
│ │
|
|
@@ -240,6 +260,29 @@ Under what conditions does this work?
|
|
|
240
260
|
Local testing proves the solution. IaC ensures reproducibility.
|
|
241
261
|
Manual changes are TEMPORARY. IaC changes are PERMANENT.
|
|
242
262
|
If it's not in IaC, it doesn't exist (will be destroyed/lost).
|
|
263
|
+
Secrets live in GitHub - use pipelines for secret-dependent operations.
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### Approved Pipelines
|
|
267
|
+
|
|
268
|
+
| Task | Pipeline | Trigger | Notes |
|
|
269
|
+
|------|----------|---------|-------|
|
|
270
|
+
| Kubernetes operations | `ops-approved-operations.yml` | Manual dispatch | Has cluster secrets |
|
|
271
|
+
| Ephemeral environments | `ops-create-ephemeral.yml` | Manual dispatch | Self-destructs after run |
|
|
272
|
+
| Terraform changes | `iac-terraform-cicd.yml` | PR to main | Has TF secrets |
|
|
273
|
+
| Ephemeral Terraform | `ops-ephemeral-terraform.yml` | Manual dispatch | One-time TF operations |
|
|
274
|
+
|
|
275
|
+
### Using Ephemeral Pipelines for One-Time Operations
|
|
276
|
+
|
|
277
|
+
For operations that need secrets but are one-time (migrations, testing, data fixes):
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
# Create ephemeral pipeline that self-destructs after completion
|
|
281
|
+
gh workflow run ops-create-ephemeral.yml \
|
|
282
|
+
-f operation_name="test-new-config" \
|
|
283
|
+
-f commands="terraform apply -target=module.new_feature"
|
|
284
|
+
|
|
285
|
+
# Pipeline runs with secrets, then self-removes
|
|
243
286
|
```
|
|
244
287
|
|
|
245
288
|
### Parity Verification Checklist
|
|
@@ -247,51 +290,42 @@ If it's not in IaC, it doesn't exist (will be destroyed/lost).
|
|
|
247
290
|
Before marking infrastructure work complete:
|
|
248
291
|
|
|
249
292
|
```bash
|
|
250
|
-
# 1. Capture current state (after
|
|
293
|
+
# 1. Capture current state (after testing via pipeline)
|
|
251
294
|
kubectl get all -n <namespace> -o yaml > /tmp/current-state.yaml
|
|
252
|
-
terraform state pull > /tmp/current-tf-state.json
|
|
253
295
|
|
|
254
|
-
# 2. Destroy
|
|
255
|
-
|
|
256
|
-
|
|
296
|
+
# 2. Destroy test resources (via pipeline if secrets needed)
|
|
297
|
+
gh workflow run ops-approved-operations.yml \
|
|
298
|
+
-f operation="delete" \
|
|
299
|
+
-f target="test-resources"
|
|
257
300
|
|
|
258
|
-
# 3. Apply ONLY from IaC
|
|
259
|
-
terraform
|
|
260
|
-
kubectl apply -k ./manifests/ # via ArgoCD/pipeline
|
|
301
|
+
# 3. Apply ONLY from IaC (via pipeline - has secrets)
|
|
302
|
+
# Push IaC changes → PR → iac-terraform-cicd.yml runs automatically
|
|
261
303
|
|
|
262
304
|
# 4. Verify parity - must produce IDENTICAL state
|
|
263
305
|
kubectl get all -n <namespace> -o yaml > /tmp/iac-state.yaml
|
|
264
306
|
diff /tmp/current-state.yaml /tmp/iac-state.yaml # Should be empty
|
|
265
307
|
```
|
|
266
308
|
|
|
267
|
-
### Approved Pipelines (for final deployment)
|
|
268
|
-
|
|
269
|
-
| Task | Pipeline | Trigger |
|
|
270
|
-
|------|----------|---------|
|
|
271
|
-
| Kubernetes operations | `ops-approved-operations.yml` | Manual dispatch |
|
|
272
|
-
| Ephemeral environments | `ops-create-ephemeral.yml` | Manual dispatch |
|
|
273
|
-
| Terraform changes | `iac-terraform-cicd.yml` | PR to main |
|
|
274
|
-
| Ephemeral Terraform | `ops-ephemeral-terraform.yml` | Manual dispatch |
|
|
275
|
-
|
|
276
309
|
### What This Means for Agents
|
|
277
310
|
|
|
278
|
-
**PHASE 1 - Local Testing (ALLOWED):**
|
|
279
|
-
- ✓ Run `kubectl
|
|
280
|
-
- ✓ Run `terraform
|
|
311
|
+
**PHASE 1 - Local Testing (ALLOWED for non-secret operations):**
|
|
312
|
+
- ✓ Run read-only commands: `kubectl get`, `kubectl describe`, `kubectl logs`
|
|
313
|
+
- ✓ Run `terraform plan` via pipeline (needs secrets)
|
|
281
314
|
- ✓ Make cloud console changes to prototype
|
|
282
|
-
- ✓ Use
|
|
315
|
+
- ✓ Use ephemeral pipelines for secret-dependent testing
|
|
283
316
|
|
|
284
|
-
**PHASE 2 - IaC Parity (MANDATORY
|
|
317
|
+
**PHASE 2 - IaC Parity (MANDATORY - always via pipeline):**
|
|
285
318
|
- ☐ ALL manual changes MUST be translated to IaC (Terraform/K8s YAML)
|
|
286
319
|
- ☐ IaC MUST be committed to version control
|
|
287
|
-
- ☐ Deployment MUST go through CI/CD pipeline
|
|
320
|
+
- ☐ Deployment MUST go through CI/CD pipeline (has secrets)
|
|
288
321
|
- ☐ Final state MUST match IaC exactly (verify with diff)
|
|
289
322
|
- ☐ Manual/ephemeral resources MUST be cleaned up
|
|
290
323
|
|
|
291
|
-
**NEVER
|
|
292
|
-
-
|
|
293
|
-
-
|
|
294
|
-
-
|
|
324
|
+
**NEVER:**
|
|
325
|
+
- Run `terraform apply` locally (no secrets available)
|
|
326
|
+
- Run `kubectl apply` with secret-dependent resources locally
|
|
327
|
+
- Create secrets via `kubectl create secret` (use Sealed Secrets)
|
|
328
|
+
- Hardcode or expose secrets in code/logs
|
|
295
329
|
|
|
296
330
|
📖 See: `docs/adr/ADR-0006-pipeline-only-infrastructure-changes.md`
|
|
297
331
|
|