enigma-cli 1.63.6 → 1.64.1
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/assets/memory/AGENTS.md +1 -1
- package/assets/memory/CLAUDE.md +1 -1
- package/assets/skills/anti-overengineering-policy/skill.json +1 -1
- package/assets/skills/anti-overengineering-review/skill.json +1 -1
- package/assets/skills/backend-policy/SKILL.md +14 -1
- package/assets/skills/backend-policy/skill.json +5 -5
- package/assets/skills/ci-policy/skill.json +1 -1
- package/assets/skills/ciphera-style-policy/skill.json +1 -1
- package/assets/skills/code-review-policy/skill.json +1 -1
- package/assets/skills/core-engineering-policy/skill.json +1 -1
- package/assets/skills/database-expert/skill.json +1 -1
- package/assets/skills/debugging-policy/skill.json +1 -1
- package/assets/skills/dependency-policy/skill.json +1 -1
- package/assets/skills/email-policy/skill.json +1 -1
- package/assets/skills/frontend-design/skill.json +1 -1
- package/assets/skills/frontend-policy/SKILL.md +4 -1
- package/assets/skills/frontend-policy/skill.json +4 -4
- package/assets/skills/git-policy/skill.json +1 -1
- package/assets/skills/logo-sourcing-policy/skill.json +1 -1
- package/assets/skills/security-policy/SKILL.md +2 -0
- package/assets/skills/security-policy/skill.json +4 -4
- package/assets/skills/skill-creator/skill.json +1 -1
- package/assets/skills/task-completion-policy/skill.json +1 -1
- package/assets/skills/technical-writing-policy/skill.json +1 -1
- package/assets/skills/testing-policy/SKILL.md +1 -0
- package/assets/skills/testing-policy/skill.json +4 -4
- package/assets/skills/validation-policy/skill.json +1 -1
- package/bin/checksums.json +4 -4
- package/dist/guard.js +0 -0
- package/dist/guardrails.js +194 -24
- package/dist/post-edit.js +241 -68
- package/package.json +1 -1
package/assets/memory/AGENTS.md
CHANGED
|
@@ -123,7 +123,7 @@ Prose to the user is compressed at level **{{output-level}}**. It shapes the ANS
|
|
|
123
123
|
Work at the standard of a senior staff engineer running production AI infrastructure (agents, LLM infra, MCP, skills, RAG, context engineering), whatever the task is.
|
|
124
124
|
|
|
125
125
|
- Trade-offs in this order: security, correctness, simplicity, maintainability, scalability, performance, developer experience.
|
|
126
|
-
- Secure, scalable and optimal by default unless the user says otherwise: design for production load (millions of users, large tables, many tenants) - bounded queries, stateless services, background jobs for slow work, rate limits, idempotency - and pick the efficient algorithm and query the first time,
|
|
126
|
+
- Secure, scalable and optimal by default unless the user says otherwise: design for production load (millions of users, large tables, many tenants) - bounded queries, only needed state, stateless services, background jobs for slow work, rate limits, idempotency - and pick the efficient algorithm and query the first time, unasked.
|
|
127
127
|
- Research over guessing: check an unfamiliar API, SDK, protocol or version (breaking changes, auth, streaming, limits) in its docs before using it; never infer behavior from a name. Unclear docs -> the conservative option, stated.
|
|
128
128
|
- Never invent APIs, assume undocumented behavior, fake certainty or add hidden magic. Say what is uncertain.
|
|
129
129
|
- Organize by domain and responsibility (infrastructure, orchestration, prompts, tools, memory, agents, validation, configuration); small focused modules, no tight coupling, experimental code isolated from runtime code, no stored derived data without a reason.
|
package/assets/memory/CLAUDE.md
CHANGED
|
@@ -123,7 +123,7 @@ Prose to the user is compressed at level **{{output-level}}**. It shapes the ANS
|
|
|
123
123
|
Work at the standard of a senior staff engineer running production AI infrastructure (agents, LLM infra, MCP, skills, RAG, context engineering), whatever the task is.
|
|
124
124
|
|
|
125
125
|
- Trade-offs in this order: security, correctness, simplicity, maintainability, scalability, performance, developer experience.
|
|
126
|
-
- Secure, scalable and optimal by default unless the user says otherwise: design for production load (millions of users, large tables, many tenants) - bounded queries, stateless services, background jobs for slow work, rate limits, idempotency - and pick the efficient algorithm and query the first time,
|
|
126
|
+
- Secure, scalable and optimal by default unless the user says otherwise: design for production load (millions of users, large tables, many tenants) - bounded queries, only needed state, stateless services, background jobs for slow work, rate limits, idempotency - and pick the efficient algorithm and query the first time, unasked.
|
|
127
127
|
- Research over guessing: check an unfamiliar API, SDK, protocol or version (breaking changes, auth, streaming, limits) in its docs before using it; never infer behavior from a name. Unclear docs -> the conservative option, stated.
|
|
128
128
|
- Never invent APIs, assume undocumented behavior, fake certainty or add hidden magic. Say what is uncertain.
|
|
129
129
|
- Organize by domain and responsibility (infrastructure, orchestration, prompts, tools, memory, agents, validation, configuration); small focused modules, no tight coupling, experimental code isolated from runtime code, no stored derived data without a reason.
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "On-demand over-engineering review - diff review, whole-repo audit, and enigma: debt-marker ledger (tags delete/stdlib/native/yagni/shrink, line/dep scoring); lists cuts, applies nothing.",
|
|
6
6
|
"updated": "2026-06-16T11:24:30+02:00",
|
|
7
|
-
"cliVersion": "1.
|
|
7
|
+
"cliVersion": "1.64.1",
|
|
8
8
|
"sha": "f742a2be3f328b9ea1ff9a35a449177c2cbec35ad16e46f7054b7a873a2ab017"
|
|
9
9
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: backend-policy
|
|
3
|
-
description: Backend/API architecture - controller-service-repository layering, modern TypeScript project configuration (target/module/moduleResolution, strict flags, and the `@/*` path alias), request/response handling, API and request optimization (batching, avoiding redundant calls), server-side caching (Redis) with invalidation, and Zod boundary validation. Use when designing or changing API endpoints, services, controllers, server business logic, or backend request flow, and when scaffolding or fixing a backend's tsconfig.
|
|
3
|
+
description: Backend/API architecture - controller-service-repository layering, modern TypeScript project configuration (target/module/moduleResolution, strict flags, and the `@/*` path alias), request/response handling, API and request optimization (batching, avoiding redundant calls), server-side caching (Redis) with invalidation, bounded state (store only what is needed, remove what is no longer used, give everything stored a designed end), and Zod boundary validation. Use when designing or changing API endpoints, services, controllers, server business logic, or backend request flow, and when scaffolding or fixing a backend's tsconfig.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Backend & API Architecture Policy
|
|
@@ -118,6 +118,19 @@ Cache expensive or hot reads on the server to reduce database load, complementin
|
|
|
118
118
|
|
|
119
119
|
---
|
|
120
120
|
|
|
121
|
+
## Bounded State
|
|
122
|
+
|
|
123
|
+
Storage is a cost that compounds: every row, column, key, file, process and open connection that is not strictly needed slows the queries, indexes, backups and scans that touch it, and grows without limit at scale. Keeping what nothing needs is a scalability defect, not a safe default.
|
|
124
|
+
|
|
125
|
+
- Store only what something reads and needs: never a value derivable from what is already stored, a copy of data another store owns, a field or table no code path reads, or a log, history or snapshot nobody consumes. When unsure whether it is needed, it is not stored until a reader exists. Audit trails, legal or compliance retention and backups are needed even without a code reader: keep them under their retention policy, never skip or delete them as unused.
|
|
126
|
+
- What stops being used goes in the same change that stops using it: a column, table, index, flag, cache key, queue, file, bucket, job, env var or config key whose last reader or writer you removed. Remove it safely, never losing data a user still owns, with expand-and-contract (database-expert): this change stops every read and write; the drop ships in a later deploy, once no running version touches it, with a backup or export taken first, since a down migration cannot bring dropped data back. Until then the pending drop is tracked so it is not forgotten.
|
|
127
|
+
- Whatever you create - persisted, cached or held open - is designed with its end in the same change: what ends it, when, and what goes with it. If nothing ever ends it, it is a leak.
|
|
128
|
+
- End it on the event that makes it useless (the owner revokes, disconnects, finishes or is deleted), and on time for whatever simply expires: a native TTL where the store has one, otherwise an idempotent, batched purge on an indexed expiry column. Never rely on an unrelated later write to clean up.
|
|
129
|
+
- Removing a thing removes or detaches what depends on it and releases what it holds open; nothing is left orphaned or running.
|
|
130
|
+
- Where a user can reasonably come back, keep it for a stated grace window, then remove it. What must be kept (audit, legal) is kept under a named retention policy (personal data: database-expert), never "forever".
|
|
131
|
+
- The fix is retroactive: what already accumulated is cleaned up too. A test proves expired or orphaned state goes and live state stays.
|
|
132
|
+
---
|
|
133
|
+
|
|
121
134
|
## Observability
|
|
122
135
|
|
|
123
136
|
- Log enough context to trace a request end to end, without logging secrets or sensitive values.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "backend-policy",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
|
-
"description": "Backend/API architecture: controller-service-repository layering, modern TypeScript project configuration (module resolution, strict flags, @/* path alias), API and request optimization (batching, avoiding redundant calls, skipping no-op writes), server-side caching (Redis), and Zod boundary validation.",
|
|
6
|
-
"updated": "2026-
|
|
7
|
-
"cliVersion": "1.
|
|
8
|
-
"sha": "
|
|
5
|
+
"description": "Backend/API architecture: controller-service-repository layering, modern TypeScript project configuration (module resolution, strict flags, @/* path alias), API and request optimization (batching, avoiding redundant calls, skipping no-op writes), server-side caching (Redis), bounded state (store only what is needed, remove what is no longer used, give everything stored a designed end), and Zod boundary validation.",
|
|
6
|
+
"updated": "2026-10-14T22:50:34+02:00",
|
|
7
|
+
"cliVersion": "1.64.1",
|
|
8
|
+
"sha": "ad7579a6c5a888e2a7bca09ff093933527bd87d4beb232cc0d2278d7b029813d"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "CI/CD pipelines on any provider: faster and cheaper without dropping a check - measure first, one pipeline per commit, input-hashed caches never saved from a failed build, no duplicate checks, sharding, change filters that keep required checks green, flakes fixed not retried, and workflow security.",
|
|
6
6
|
"updated": "2026-10-10T17:38:23+02:00",
|
|
7
|
-
"cliVersion": "1.
|
|
7
|
+
"cliVersion": "1.64.1",
|
|
8
8
|
"sha": "87e141d1fb2dff2441a157a784fa7b57a66d6382b44d2ce74f24ad4865111407"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Ciphera code style conventions (formatting, naming, imports incl. namespace imports for wide module surfaces, path-alias specifiers and no file extensions, comments, code-level anti-patterns; TypeScript-first, language-agnostic).",
|
|
6
6
|
"updated": "2026-08-02T19:59:01+02:00",
|
|
7
|
-
"cliVersion": "1.
|
|
7
|
+
"cliVersion": "1.64.1",
|
|
8
8
|
"sha": "3beb0383a9cb0331ef8a579308a2517d24d57a8ba33751ad17d16d0a4f66e344"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Pre-delivery self-review gate, prioritized review dimensions, and change-quality criteria.",
|
|
6
6
|
"updated": "2026-08-19T12:37:59+02:00",
|
|
7
|
-
"cliVersion": "1.
|
|
7
|
+
"cliVersion": "1.64.1",
|
|
8
8
|
"sha": "6b8a924cc11b61d4b45b73384aeb095ce622229359b7cc2c6ce4bb0cf3015ed7"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Senior database architecture policy: engine selection (PostgreSQL by default, SQLite only for local-first/embedded stores), ORM selection (Prisma in TypeScript/JavaScript), query optimization, anti-duplication/normalization, scalability, and RGPD/GDPR encryption.",
|
|
6
6
|
"updated": "2026-08-04T18:33:27+02:00",
|
|
7
|
-
"cliVersion": "1.
|
|
7
|
+
"cliVersion": "1.64.1",
|
|
8
8
|
"sha": "26fddc14caf697e830448a2cc453ddc470fe83d098d50bd67b278effba63274e"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Reproduce-isolate-fix debugging methodology with root-cause discipline and regression verification.",
|
|
6
6
|
"updated": "2026-08-02T04:15:47+02:00",
|
|
7
|
-
"cliVersion": "1.
|
|
7
|
+
"cliVersion": "1.64.1",
|
|
8
8
|
"sha": "968876bcac9ce6e5a20be05c89ac97191b112c9e08679a8dc506d150c375fec4"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Dependency and supply-chain security: lockfiles and reproducible installs, version pinning, vulnerability auditing, vetting/minimizing packages, vendoring, and SBOM/provenance.",
|
|
6
6
|
"updated": "2026-06-01T00:45:28+02:00",
|
|
7
|
-
"cliVersion": "1.
|
|
7
|
+
"cliVersion": "1.64.1",
|
|
8
8
|
"sha": "6375d835c2aef2c9bd31ce116444dc3d796f510f9970a213aa3ac4696d7e21b9"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Transactional email: React Email templates instead of hand-written HTML tables, server-side rendering, one send module behind the provider SDK, plain-text alternatives, idempotent background sending, link safety, and deliverability (SPF/DKIM/DMARC, bounce suppression, unsubscribe).",
|
|
6
6
|
"updated": "2026-09-28T21:34:15+02:00",
|
|
7
|
-
"cliVersion": "1.
|
|
7
|
+
"cliVersion": "1.64.1",
|
|
8
8
|
"sha": "648c7ae3d95d5a033f4955a87613e20b40b265bfcc24d41a5732d415abe778f9"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one.",
|
|
6
6
|
"updated": "2026-09-28T21:34:15+02:00",
|
|
7
|
-
"cliVersion": "1.
|
|
7
|
+
"cliVersion": "1.64.1",
|
|
8
8
|
"sha": "5d532c2dc467f960ff800c5cd7021db09911599347959cd04481f2054abd9baa"
|
|
9
9
|
}
|
|
@@ -33,8 +33,11 @@ description: Frontend architecture - reusable components, abstraction thresholds
|
|
|
33
33
|
- `toast` - notifications whose timer pauses on hover, on focus and on a hidden tab, with promise toasts and actions.
|
|
34
34
|
- `context-menu` - the right-click menu with the desktop's behaviour: submenus on a beat, a panel that flips at the window edge, Escape, arrows, Shift+F10, shortcuts printed for the reader's platform.
|
|
35
35
|
- `selection` - Explorer's selection model: anchor and cursor, Shift, Ctrl, Ctrl+Shift, a rubber band, arrow keys, and delete/rename/open reported as commands.
|
|
36
|
+
- `image` - every content image in the project goes through it: one component, lightbox on press, wheel zoom around the cursor. A raw `<img>` per page is the duplication this replaces.
|
|
37
|
+
- `video` - a player with the controls a video is expected to have: big play button over the poster, buffered scrubber, keyboard, fullscreen.
|
|
36
38
|
- `button` - press states, async pending, cooldowns, and a shortcut badge; `marquee` and `logo-marquee` - a looping row that takes px/s and measures its own lap; `search` - the engine behind a field or a page; `flags` - a country flag as an image, never an emoji; `relative-time` - "3 minutes ago" that updates itself; `network` - online/offline and connection quality; `notifications` - the queue under the toast, for a renderer of your own.
|
|
37
|
-
-
|
|
39
|
+
- Utilities (same `enigma add <name>`): `cache` - read-through cache with in-flight dedupe and prefix invalidation; `safe-fetch` - fetch a URL that came from outside without reaching this machine, its network or cloud metadata; `safe-upload` - accept an upload by its bytes against an allowlist and a size cap; `password-breach` - the k-anonymity leaked-password check.
|
|
40
|
+
- Ten are already deterministic: the `fe-*-hand-rolled` guardrails (select, toast, palette, context-menu, selection, password-reveal, relative-time, color-picker, lightbox, video-player) block the hand-rolled version at the moment it is written, and each message names the defects the primitive fixed. Reading the message is faster than rediscovering them.
|
|
38
41
|
- If the catalogue has no primitive for what you need, write it as one (core + adapter + registry entry + test) rather than inline in a page, so the next screen reuses it instead of rewriting it.
|
|
39
42
|
|
|
40
43
|
## Component Reuse (Mandatory)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "frontend-policy",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.34.0",
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Frontend architecture: reusable components, abstraction thresholds, state management, real-time form validation where an emptied or not-yet-filled field is incomplete rather than invalid (a `*` on the label and an aria-disabled submit, never \"email is not valid\" over an empty input), no-op detection (skip any operation whose result equals current state, not just form saves; dirty means different from the loaded snapshot, not touched), instant first paint (render the shell, load data async, skeletons), perceived performance (prefetch on intent, debounce/throttle, cancel stale requests, avoid waterfalls, lazy widgets), large-list rendering (infinite scroll is the preferred default, pagination the deliberate exception when the design or the user calls for it, virtualization, skeletons, progressive loading), data views that ship their own affordances by default (a log, expense, transaction or history table is not done when the rows render: fuse.js search, the filters its column kinds imply, a date range, sort, filter state in the URL, and an export of the filtered set), every reference to an entity being a way into it (a name, id, project or path in a row links to that record, reveals it in a hover card, or at minimum copies and filters by it, never inert text; machine codes get human labels and raw payloads are never dumped into a cell), optimistic UI with rollback, visual restraint (one card level, spacing before borders, one elevation scale), icon actions (repeated row/card actions are icon-only buttons with aria-label plus title, not text labels), responsive/adaptive layout (fluid units, breakpoints, no overlap/overflow, viewport meta, touch targets), form fields that declare their keyboard and casing (autocapitalize/autocomplete/inputmode per field kind, set once in the shared Input, normalized on blur), variable-length text (min-width:0 in flex/grid, wrap vs truncate, long unbroken strings, worst-case content checks), auth screens (breached-password feedback, strength meter, cookie consent before login/register), and AI chat/agent interfaces via Vercel's AI Elements registry instead of hand-rolled message threads.",
|
|
6
|
-
"updated": "2026-10-
|
|
7
|
-
"cliVersion": "1.
|
|
8
|
-
"sha": "
|
|
6
|
+
"updated": "2026-10-14T22:38:13+02:00",
|
|
7
|
+
"cliVersion": "1.64.1",
|
|
8
|
+
"sha": "d623a6c6088bf3f6ccb5b679ae6ba01d4858ed746894c7131c02e3058558e34b"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Git & contribution policy (senior engineering standards).",
|
|
6
6
|
"updated": "2026-10-05T14:00:39+02:00",
|
|
7
|
-
"cliVersion": "1.
|
|
7
|
+
"cliVersion": "1.64.1",
|
|
8
8
|
"sha": "3863620f77993eff848d52da383cabb658a14a370f4a977929e60af216eb6d8d"
|
|
9
9
|
}
|
|
@@ -30,6 +30,8 @@ description: Application and AI-agent security - secrets management, authenticat
|
|
|
30
30
|
- Being given one of these values to work with is not permission to write it into source, comments, docs, tests, fixtures, error strings, telemetry, commit messages, or PR text. Read it from configuration and ship a placeholder; the real value stays in the local gitignored config that already holds it.
|
|
31
31
|
- Never echo an absolute path from the developer machine into anything the product emits - logs, user-facing error messages, generated docs, or committed snapshots and fixtures. Log a project-relative path.
|
|
32
32
|
- Publish a real value only when the user explicitly asks for that value to be published. If one is genuinely required and you were not given it, ask.
|
|
33
|
+
- Real people's data is the same class, and the one leaked most: the names, handles, emails, servers and communities of the user and of their users, met in chat, a log, a database row, a screenshot or a crash report. None of it goes into a tracked file. Reproduce the shape with invented values; credit a third party only where a license requires it.
|
|
34
|
+
- The user's own list of such terms lives in `~/.enigma-guard.json` (`enigma config guard-private-terms add <term>`), never in the repository. The commit guard and the `sec-private-term` guardrail block any line carrying one. When the user names a real person or handle as private, add it there.
|
|
33
35
|
|
|
34
36
|
---
|
|
35
37
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "security-policy",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.1",
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Application and AI-agent security: secrets, authn/authz (least privilege, object- and role-level checks), credential flows with breach-checked passwords (Have I Been Pwned), OWASP Top 10 with vetted helpers for SSRF, redirects and uploads, transport/crypto baseline, cookies and consent, secure logging, and agent/MCP/tool-use safety.",
|
|
6
|
-
"updated": "2026-
|
|
7
|
-
"cliVersion": "1.
|
|
8
|
-
"sha": "
|
|
6
|
+
"updated": "2026-10-14T23:32:53+02:00",
|
|
7
|
+
"cliVersion": "1.64.1",
|
|
8
|
+
"sha": "dfa24051a8e0ded46fa2846bf09f642ac749dcab0aea0d308889c22bd52e2e57"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Create new skills, modify and improve existing skills, and measure skill performance with evals and benchmarks.",
|
|
6
6
|
"updated": "2026-08-03T00:16:54+02:00",
|
|
7
|
-
"cliVersion": "1.
|
|
7
|
+
"cliVersion": "1.64.1",
|
|
8
8
|
"sha": "a49f6166f57d734e0f13487332da37903e925f32257447856af0fbd6a5f1dc84"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Exhaustive completion discipline for long/multi-item tasks - inventory, coverage ledger, verified done.",
|
|
6
6
|
"updated": "2026-10-02T12:38:13+02:00",
|
|
7
|
-
"cliVersion": "1.
|
|
7
|
+
"cliVersion": "1.64.1",
|
|
8
8
|
"sha": "ee8447d5ca9e5d77e0a338d1e762c30e1527ded4665c10ddf21f2c4c9ce3f2d5"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Concise, realistic copy for UI, landing/sales, SEO, email and docs - the user's outcome instead of the mechanism, no full enumerations or \"powered by\" lineage, none of the recognizable AI-writing tells, and never a typographic dash.",
|
|
6
6
|
"updated": "2026-09-28T21:34:15+02:00",
|
|
7
|
-
"cliVersion": "1.
|
|
7
|
+
"cliVersion": "1.64.1",
|
|
8
8
|
"sha": "e32623f37f1bf90fa611968ca8b216e3381771254b6af7c81a953c17a8889ddb"
|
|
9
9
|
}
|
|
@@ -47,6 +47,7 @@ description: Test strategy (test pyramid), coverage gates, deterministic tests,
|
|
|
47
47
|
|
|
48
48
|
- Tests must be deterministic: no reliance on real time, randomness, network, or ordering.
|
|
49
49
|
- Control time, randomness, and external services via injection, fakes, or fixtures.
|
|
50
|
+
- Tests use anonymous data, never real data: invent every name, handle, email, server and id (`Player One`, `alice@example.test`), and when a real log line or payload shape is the point of the test, keep the shape and replace every value. A capture pasted from production, a user's message or the developer's machine is a leak (security-policy), however convenient the regression case it makes.
|
|
50
51
|
- A negative case derived from a random value must differ from it by construction. Mutating a random token or id to a fixed value ("replace the last character with A") passes the original through whenever it already had that value - a flake that fails 1 run in N. Pick the replacement from the value itself (A unless it already is A, else B), and sweep the suite for the same pattern when one is found.
|
|
51
52
|
- Each test must be independent and able to run in isolation and in any order.
|
|
52
53
|
- One logical assertion focus per test; name tests by the behavior they verify.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "testing-policy",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Test strategy, coverage gates, deterministic tests, mocking discipline, regression-first bug fixing, and test-suite organization (layout by type/domain, mirrored paths, file naming, fixture/helper placement).",
|
|
6
|
-
"updated": "2026-10-
|
|
7
|
-
"cliVersion": "1.
|
|
8
|
-
"sha": "
|
|
6
|
+
"updated": "2026-10-14T23:18:51+02:00",
|
|
7
|
+
"cliVersion": "1.64.1",
|
|
8
|
+
"sha": "3bc5b6640e936729cbb06ba3bb132f5bbd3869b17a0d0bf892210c1dedd5c89a"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Strict frontend + backend schema validation, normalization before validation (shared normalizers: trim, lowercase email, capitalize names, canonicalize links and handles), real-time error timing (an emptied or not-yet-filled field is incomplete, not invalid: a `*` and an aria-disabled submit instead of \"not valid\" over an empty input), schema consistency, and safe client-facing error handling.",
|
|
6
6
|
"updated": "2026-10-02T19:07:57+02:00",
|
|
7
|
-
"cliVersion": "1.
|
|
7
|
+
"cliVersion": "1.64.1",
|
|
8
8
|
"sha": "7b39ded6b82cb7a8424aea7b8d59a293791205d57e7272ff63d9fa558772ecb1"
|
|
9
9
|
}
|
package/bin/checksums.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"enigma-darwin-arm64": "
|
|
3
|
-
"enigma-linux-arm64": "
|
|
4
|
-
"enigma-linux-x64": "
|
|
5
|
-
"enigma-win32-x64.exe": "
|
|
2
|
+
"enigma-darwin-arm64": "93f9b892446968787f3243178296a681ad06926c63b19864142dbaaf4f412ca8",
|
|
3
|
+
"enigma-linux-arm64": "b44ef3350e612487e9a927be3a55924349acc15c246fad68686d068643392156",
|
|
4
|
+
"enigma-linux-x64": "47bdf701ec07d5ec96ddaa599123e254ea2ab84e8f862781ed3be0507abcfb6f",
|
|
5
|
+
"enigma-win32-x64.exe": "3165226ee715f5684c790ad8a96717bfbf2f97d1d0f334490d6a1954df16f484"
|
|
6
6
|
}
|
package/dist/guard.js
CHANGED
|
Binary file
|