universal-agent-memory 1.0.14 → 1.0.16

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.14",
3
+ "version": "1.0.16",
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,14 @@
1
1
  <!--
2
- CLAUDE.md Universal Template - v10.10
2
+ CLAUDE.md Universal Template - v10.11
3
3
 
4
4
  CHANGES IN THIS VERSION:
5
+ - INFRASTRUCTURE POLICY UPDATE: Local testing now ALLOWED for proving solutions
6
+ - IaC parity MANDATORY before completion (test locally, then codify in IaC)
7
+ - Two-phase workflow: Phase 1 (local proof) → Phase 2 (IaC parity verification)
8
+ - Parity verification checklist with state diff confirmation
9
+ - Updated completion checklist for infrastructure tasks
10
+
11
+ PREVIOUS (v10.10):
5
12
  - PROJECT.md SEPARATION: Project-specific content can now be in .factory/PROJECT.md
6
13
  - Seamless template upgrades without merge conflicts
7
14
  - Generator auto-detects PROJECT.md and imports as Handlebars partial
@@ -181,10 +188,10 @@ Under what conditions does this work?
181
188
  - Solve problems you weren't asked to solve
182
189
  - Produce code you wouldn't want to debug at 3am
183
190
  {{#if HAS_PIPELINE_POLICY}}
184
- - Run kubectl commands directly (use `ops-approved-operations.yml`)
185
- - Run terraform locally (use `iac-terraform-cicd.yml`)
186
- - Document manual infrastructure commands (link to pipelines instead)
187
- - Create secrets outside of Sealed Secrets or pipelines
191
+ - Leave manual infrastructure changes without IaC parity
192
+ - Skip pipeline deployment after local testing
193
+ - Create production secrets via kubectl (use Sealed Secrets)
194
+ - Mark infrastructure work complete without verifying IaC matches live state
188
195
  {{/if}}
189
196
 
190
197
  ### Expected Output Format
@@ -198,20 +205,66 @@ Under what conditions does this work?
198
205
  ---
199
206
 
200
207
  {{#if HAS_INFRA}}
201
- ## 🚫 PIPELINE-ONLY POLICY - ABSOLUTE RULE
208
+ ## 🚫 INFRASTRUCTURE AS CODE POLICY - IaC PARITY REQUIRED
202
209
 
203
- **ALL infrastructure changes MUST go through CI/CD pipelines. NO EXCEPTIONS.**
210
+ **Local testing is ALLOWED for proving solutions. IaC parity is MANDATORY before completion.**
204
211
 
205
- ### Core Inhibitions
212
+ ### Two-Phase Infrastructure Workflow
213
+
214
+ ```
215
+ ┌─────────────────────────────────────────────────────────────────┐
216
+ │ PHASE 1: LOCAL PROOF (ALLOWED) │
217
+ │ ───────────────────────────────────────────────────────────── │
218
+ │ ✓ kubectl apply/delete/patch to TEST solution │
219
+ │ ✓ terraform plan/apply in dev/ephemeral environments │
220
+ │ ✓ Direct cloud console changes for rapid prototyping │
221
+ │ ✓ Manual commands to verify behavior │
222
+ │ │
223
+ │ PURPOSE: Prove the solution works before codifying │
224
+ ├─────────────────────────────────────────────────────────────────┤
225
+ │ PHASE 2: IaC PARITY (MANDATORY) │
226
+ │ ───────────────────────────────────────────────────────────── │
227
+ │ ☐ Translate ALL manual changes to Terraform/Kubernetes YAML │
228
+ │ ☐ Commit IaC changes to feature branch │
229
+ │ ☐ Run `terraform plan` to verify parity │
230
+ │ ☐ Deploy via pipeline to confirm 100% match │
231
+ │ ☐ Delete any manual/ephemeral resources │
232
+ │ │
233
+ │ RULE: Work is NOT complete until IaC matches live state │
234
+ └─────────────────────────────────────────────────────────────────┘
235
+ ```
236
+
237
+ ### Core Principle
206
238
 
207
239
  ```
208
- Do not run kubectl commands directly against clusters.
209
- Do not run terraform apply from local machines.
210
- Do not make changes via cloud console that should be in IaC.
211
- Do not document manual commands in runbooks - link to pipelines instead.
240
+ Local testing proves the solution. IaC ensures reproducibility.
241
+ Manual changes are TEMPORARY. IaC changes are PERMANENT.
242
+ If it's not in IaC, it doesn't exist (will be destroyed/lost).
212
243
  ```
213
244
 
214
- ### Approved Pipelines
245
+ ### Parity Verification Checklist
246
+
247
+ Before marking infrastructure work complete:
248
+
249
+ ```bash
250
+ # 1. Capture current state (after manual testing)
251
+ kubectl get all -n <namespace> -o yaml > /tmp/current-state.yaml
252
+ terraform state pull > /tmp/current-tf-state.json
253
+
254
+ # 2. Destroy manual changes
255
+ kubectl delete -f /tmp/manual-test.yaml
256
+ # OR for terraform: terraform destroy -target=<resource>
257
+
258
+ # 3. Apply ONLY from IaC
259
+ terraform apply # via pipeline
260
+ kubectl apply -k ./manifests/ # via ArgoCD/pipeline
261
+
262
+ # 4. Verify parity - must produce IDENTICAL state
263
+ kubectl get all -n <namespace> -o yaml > /tmp/iac-state.yaml
264
+ diff /tmp/current-state.yaml /tmp/iac-state.yaml # Should be empty
265
+ ```
266
+
267
+ ### Approved Pipelines (for final deployment)
215
268
 
216
269
  | Task | Pipeline | Trigger |
217
270
  |------|----------|---------|
@@ -220,23 +273,25 @@ Do not document manual commands in runbooks - link to pipelines instead.
220
273
  | Terraform changes | `iac-terraform-cicd.yml` | PR to main |
221
274
  | Ephemeral Terraform | `ops-ephemeral-terraform.yml` | Manual dispatch |
222
275
 
223
- ### One-Time Operations
224
-
225
- For operations that need to run once (migrations, data fixes, cleanups):
276
+ ### What This Means for Agents
226
277
 
227
- 1. Use `ops-create-ephemeral.yml` to create a pipeline
228
- 2. Define the operation in the pipeline configuration
229
- 3. Run via GitHub Actions workflow dispatch
230
- 4. Pipeline self-destructs after completion
278
+ **PHASE 1 - Local Testing (ALLOWED):**
279
+ - Run `kubectl apply/delete/patch` to test solutions
280
+ - Run `terraform apply` in dev/ephemeral environments
281
+ - Make cloud console changes to prototype
282
+ - ✓ Use any tools needed to prove the solution works
231
283
 
232
- ### What This Means for Agents
284
+ **PHASE 2 - IaC Parity (MANDATORY before completion):**
285
+ - ☐ ALL manual changes MUST be translated to IaC (Terraform/K8s YAML)
286
+ - ☐ IaC MUST be committed to version control
287
+ - ☐ Deployment MUST go through CI/CD pipeline
288
+ - ☐ Final state MUST match IaC exactly (verify with diff)
289
+ - ☐ Manual/ephemeral resources MUST be cleaned up
233
290
 
234
- - **NEVER**: Run `kubectl apply`, `kubectl delete`, `kubectl patch` directly
235
- - **NEVER**: Run `terraform apply`, `terraform destroy` locally
236
- - **NEVER**: Create Kubernetes secrets via `kubectl create secret`
237
- - **ALWAYS**: Make infrastructure changes via PR → pipeline
238
- - **ALWAYS**: Use `ops-approved-operations.yml` for operational tasks
239
- - **ALWAYS**: Reference pipeline workflows instead of manual commands
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
240
295
 
241
296
  📖 See: `docs/adr/ADR-0006-pipeline-only-infrastructure-changes.md`
242
297
 
@@ -1367,9 +1422,10 @@ kubectl create secret ...
1367
1422
  ☐ Terraform plan verified
1368
1423
  {{/if}}
1369
1424
  {{#if HAS_PIPELINE_POLICY}}
1370
- No manual kubectl commands (use pipelines)
1371
- No local terraform apply (use pipelines)
1372
- Infrastructure changes via iac-terraform-cicd.yml
1425
+ IaC parity verified (manual changes translated to Terraform/K8s YAML)
1426
+ Final deployment via pipeline (iac-terraform-cicd.yml)
1427
+ State diff confirmed empty (IaC matches live)
1428
+ ☐ Manual/ephemeral resources cleaned up
1373
1429
  {{/if}}
1374
1430
  ☐ No secrets in code
1375
1431
  ```