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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "universal-agent-memory",
3
- "version": "1.0.16",
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.11
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 apply/delete/patch to TEST solution
219
- │ ✓ terraform plan/apply in dev/ephemeral environments
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` to verify parity
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 manual testing)
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 manual changes
255
- kubectl delete -f /tmp/manual-test.yaml
256
- # OR for terraform: terraform destroy -target=<resource>
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 apply # via pipeline
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 apply/delete/patch` to test solutions
280
- - ✓ Run `terraform apply` in dev/ephemeral environments
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 any tools needed to prove the solution works
315
+ - ✓ Use ephemeral pipelines for secret-dependent testing
283
316
 
284
- **PHASE 2 - IaC Parity (MANDATORY before completion):**
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 (even in Phase 1):**
292
- - Create production secrets via `kubectl create secret` (use Sealed Secrets)
293
- - Make changes to production without IaC parity plan
294
- - Leave manual changes undocumented in IaC
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