enigma-cli 1.30.5 → 1.30.6
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 +2 -0
- package/assets/memory/CLAUDE.md +2 -0
- 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.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/frontend-design/skill.json +1 -1
- package/assets/skills/frontend-policy/SKILL.md +20 -0
- 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.json +1 -1
- package/assets/skills/skill-creator/skill.json +1 -1
- package/assets/skills/task-completion-policy/skill.json +2 -2
- package/assets/skills/technical-writing-policy/skill.json +1 -1
- package/assets/skills/testing-policy/skill.json +1 -1
- package/assets/skills/validation-policy/SKILL.md +1 -1
- package/assets/skills/validation-policy/skill.json +4 -4
- package/package.json +1 -1
package/assets/memory/AGENTS.md
CHANGED
|
@@ -37,9 +37,11 @@ Non-negotiable, language-agnostic defaults - apply them by default without being
|
|
|
37
37
|
|
|
38
38
|
- Validate EVERY external input (request body, query, params, event payload, form field, CLI arg, webhook/message) against an explicit schema before use - Zod (TS/JS), Pydantic (Python), the language's equivalent elsewhere. Never consume an unvalidated shape or leave it open-ended. When the input is a tagged/event union, validate the discriminant AND that specific variant's body, with the expected fields typed.
|
|
39
39
|
- Frontend forms: validate in real time against the same schema, and use optimistic UI with rollback on failure for user-facing mutations.
|
|
40
|
+
- When a value must be unique within a set the client already holds (a list of names, slugs, emails, tags the user just rendered or is editing), check uniqueness/availability in real time against that loaded data on every change and block the conflicting submit BEFORE any server call - instant feedback for the user, no wasted round-trip or DB query. Apply this whenever duplicates are disallowed (unique names, one-per-parent, "already in use"); mirror the server's exact rule (trim, case-fold, scope, reserved values) and exclude the record's own current value when editing so renaming to the same value is not flagged. The backend still re-validates as the authority (client data can be stale).
|
|
40
41
|
- Cache reads on the client (localStorage/sessionStorage, or the data layer's cache) with a short TTL (~30s or more) to avoid redundant queries and survive rate limits; invalidate on write.
|
|
41
42
|
- Build reusable, composable components instead of duplicating UI - e.g. a single Input that renders a show/hide toggle when the type is password. Reuse before writing new.
|
|
42
43
|
- Never use the browser's native `alert`/`confirm`/`prompt` - use a dialog/modal component that matches the page design.
|
|
44
|
+
- Display dates/timestamps as localized, auto-updating values - never hand-rolled `toLocaleString`/"X ago" math scattered across components, nor a heavy date library just to format one. On the web use `<relative-time>` (`@github/relative-time-element`): `<relative-time datetime="<ISO-8601>">fallback</relative-time>` renders relative phrasing that updates itself, localizes to the user's timezone/locale via `Intl`, is accessible, and SSR-caches with a graceful no-JS fallback (the slotted text); switch relative vs. absolute with `format`/`tense`/`precision`/`threshold`. Keep raw ISO-8601/UTC in your data; localize only at render. Off the web, centralize formatting in one shared `Intl`-based helper with the same "store UTC, localize at render" rule.
|
|
43
45
|
|
|
44
46
|
### Task Execution (Always-On)
|
|
45
47
|
|
package/assets/memory/CLAUDE.md
CHANGED
|
@@ -37,9 +37,11 @@ Non-negotiable, language-agnostic defaults - apply them by default without being
|
|
|
37
37
|
|
|
38
38
|
- Validate EVERY external input (request body, query, params, event payload, form field, CLI arg, webhook/message) against an explicit schema before use - Zod (TS/JS), Pydantic (Python), the language's equivalent elsewhere. Never consume an unvalidated shape or leave it open-ended. When the input is a tagged/event union, validate the discriminant AND that specific variant's body, with the expected fields typed.
|
|
39
39
|
- Frontend forms: validate in real time against the same schema, and use optimistic UI with rollback on failure for user-facing mutations.
|
|
40
|
+
- When a value must be unique within a set the client already holds (a list of names, slugs, emails, tags the user just rendered or is editing), check uniqueness/availability in real time against that loaded data on every change and block the conflicting submit BEFORE any server call - instant feedback for the user, no wasted round-trip or DB query. Apply this whenever duplicates are disallowed (unique names, one-per-parent, "already in use"); mirror the server's exact rule (trim, case-fold, scope, reserved values) and exclude the record's own current value when editing so renaming to the same value is not flagged. The backend still re-validates as the authority (client data can be stale).
|
|
40
41
|
- Cache reads on the client (localStorage/sessionStorage, or the data layer's cache) with a short TTL (~30s or more) to avoid redundant queries and survive rate limits; invalidate on write.
|
|
41
42
|
- Build reusable, composable components instead of duplicating UI - e.g. a single Input that renders a show/hide toggle when the type is password. Reuse before writing new.
|
|
42
43
|
- Never use the browser's native `alert`/`confirm`/`prompt` - use a dialog/modal component that matches the page design.
|
|
44
|
+
- Display dates/timestamps as localized, auto-updating values - never hand-rolled `toLocaleString`/"X ago" math scattered across components, nor a heavy date library just to format one. On the web use `<relative-time>` (`@github/relative-time-element`): `<relative-time datetime="<ISO-8601>">fallback</relative-time>` renders relative phrasing that updates itself, localizes to the user's timezone/locale via `Intl`, is accessible, and SSR-caches with a graceful no-JS fallback (the slotted text); switch relative vs. absolute with `format`/`tense`/`precision`/`threshold`. Keep raw ISO-8601/UTC in your data; localize only at render. Off the web, centralize formatting in one shared `Intl`-based helper with the same "store UTC, localize at render" rule.
|
|
43
45
|
|
|
44
46
|
### Task Execution (Always-On)
|
|
45
47
|
|
|
@@ -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.30.
|
|
7
|
+
"cliVersion": "1.30.6",
|
|
8
8
|
"sha": "f742a2be3f328b9ea1ff9a35a449177c2cbec35ad16e46f7054b7a873a2ab017"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Backend/API architecture: controller-service-repository layering, API and request optimization, server-side caching (Redis), and Zod boundary validation.",
|
|
6
6
|
"updated": "2026-06-16T12:06:06+02:00",
|
|
7
|
-
"cliVersion": "1.30.
|
|
7
|
+
"cliVersion": "1.30.6",
|
|
8
8
|
"sha": "a46c3cd00aa5f47adb1e7907f1d2bc6f5562f7a272890dee9b1121976ac04ae1"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Ciphera code style conventions (formatting, naming, imports, comments, code-level anti-patterns; TypeScript-first, language-agnostic).",
|
|
6
6
|
"updated": "2026-06-26T13:40:52+02:00",
|
|
7
|
-
"cliVersion": "1.30.
|
|
7
|
+
"cliVersion": "1.30.6",
|
|
8
8
|
"sha": "dc9ceb784004b05a0117c464e4bed05946835a04acea282586c0b735ee7c2284"
|
|
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-06-01T00:45:28+02:00",
|
|
7
|
-
"cliVersion": "1.30.
|
|
7
|
+
"cliVersion": "1.30.6",
|
|
8
8
|
"sha": "3d3bbe0602d5bbb4afe37648fe3c2fa39376b1bcbac5d8c441f01fad1e866ed0"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Core engineering execution policy and harness orchestration (highest-authority rules).",
|
|
6
6
|
"updated": "2026-07-16T22:43:53+02:00",
|
|
7
|
-
"cliVersion": "1.30.
|
|
7
|
+
"cliVersion": "1.30.6",
|
|
8
8
|
"sha": "d132f20db08806054d95e58d3d56c2aa7ebc8e6dd24d902b0a0ed9ddfae216c5"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Senior database architecture policy: query optimization, anti-duplication/normalization, scalability, and RGPD/GDPR encryption.",
|
|
6
6
|
"updated": "2026-06-03T14:19:50+02:00",
|
|
7
|
-
"cliVersion": "1.30.
|
|
7
|
+
"cliVersion": "1.30.6",
|
|
8
8
|
"sha": "2883bcecb3202683ae6f81b073c3d6a9cec9c55029e011bdd06ba7ac3537297e"
|
|
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-06-01T00:45:28+02:00",
|
|
7
|
-
"cliVersion": "1.30.
|
|
7
|
+
"cliVersion": "1.30.6",
|
|
8
8
|
"sha": "14b0064c8b33a0dc85e51464b05005cf5801c756b1101789a6924b9548420f6b"
|
|
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.30.
|
|
7
|
+
"cliVersion": "1.30.6",
|
|
8
8
|
"sha": "6375d835c2aef2c9bd31ce116444dc3d796f510f9970a213aa3ac4696d7e21b9"
|
|
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-06-25T15:51:43-04:00",
|
|
7
|
-
"cliVersion": "1.30.
|
|
7
|
+
"cliVersion": "1.30.6",
|
|
8
8
|
"sha": "fb78be3233bf9caa67d1f522c19831542b23f47e440b02211b5a950c898318b9"
|
|
9
9
|
}
|
|
@@ -97,6 +97,16 @@ Decide per case which mode fits; when in doubt for simple single-user forms and
|
|
|
97
97
|
|
|
98
98
|
---
|
|
99
99
|
|
|
100
|
+
## Real-Time Uniqueness Against Loaded Data
|
|
101
|
+
|
|
102
|
+
When the user edits a value that must be unique within a set the client already holds in memory (the list of names, slugs, tags, emails it just rendered), validate uniqueness against that loaded data on every change instead of waiting for a server round-trip to report "already taken". The set is already loaded - reuse it (per Client-Side Caching): the user gets instant inline feedback as they type, and a redundant request (and its downstream DB query) is skipped. This is a default to apply without being asked, not a feature to wait for the user to request.
|
|
103
|
+
|
|
104
|
+
- Apply whenever duplicates are disallowed (unique names, slugs, one-per-parent constraints, "already in use", reserved values). Skip it when repeats are legitimate - never gate a value the model has no basis to treat as unique.
|
|
105
|
+
- Check on every change/blur and block submission while a conflict stands; surface the conflict inline, not only on submit.
|
|
106
|
+
- The cross-record rule itself - mirror the server's exact check (trim, case-fold, scope, reserved values), exclude the edited record's own value, and keep the server as the authority since client data can be stale - is owned by validation-policy. This client check is a UX and request-saving accelerator, never the sole validation layer.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
100
110
|
## Client-Side Caching (Reduce Server Load)
|
|
101
111
|
|
|
102
112
|
Cache on the client to avoid redundant server round-trips and to keep the app usable under rate limits. The goal is to reach the backend (and therefore Redis/DB) as rarely as correctness allows.
|
|
@@ -168,6 +178,16 @@ Never render an unbounded or large dataset in one shot (no fetch-everything then
|
|
|
168
178
|
|
|
169
179
|
---
|
|
170
180
|
|
|
181
|
+
## Dates & Timestamps
|
|
182
|
+
|
|
183
|
+
Render dates and timestamps as localized, auto-updating values. Do not hand-roll formatting (`new Date().toLocaleString`, ad-hoc "X ago" math) scattered across components, and do not pull in a heavy date library just to display a time.
|
|
184
|
+
|
|
185
|
+
- On the web, use the `<relative-time>` element (`@github/relative-time-element`, MIT, dependency-light): `<relative-time datetime="<ISO-8601>">fallback text</relative-time>`. It renders relative phrasing that updates itself ("3 minutes ago" -> "4 minutes ago"), localizes to the user's timezone and locale via `Intl`, is accessible, and works server-rendered with a graceful no-JS fallback (the slotted text is what the server caches). Switch relative vs. absolute with `format`, `tense`, `precision`, and `threshold`, and style it through `::part(root)`.
|
|
186
|
+
- Keep the raw ISO-8601 / UTC value in data and state; localize only at the render boundary. Never store or compare pre-formatted date strings.
|
|
187
|
+
- Where a custom element is not available (React Native, non-web surfaces), centralize formatting in one shared helper built on the platform `Intl` APIs rather than repeating format calls, and keep the same "store UTC, localize at render" rule.
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
171
191
|
## Accessibility & Resilience
|
|
172
192
|
|
|
173
193
|
- Use semantic markup and accessible interactive elements by default.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "frontend-policy",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Frontend architecture: reusable components, abstraction thresholds, state management, no-op save detection, large-list rendering (infinite scroll/pagination, virtualization, skeletons, progressive loading), and optimistic UI with rollback.",
|
|
6
|
-
"updated": "2026-
|
|
7
|
-
"cliVersion": "1.30.
|
|
8
|
-
"sha": "
|
|
6
|
+
"updated": "2026-07-22T00:21:54+02:00",
|
|
7
|
+
"cliVersion": "1.30.6",
|
|
8
|
+
"sha": "aac4a6fa8ef875ce968ef35613361c78d1935972bf224770ca286998f8f053e5"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Git & contribution policy (senior engineering standards).",
|
|
6
6
|
"updated": "2026-07-16T22:44:02+02:00",
|
|
7
|
-
"cliVersion": "1.30.
|
|
7
|
+
"cliVersion": "1.30.6",
|
|
8
8
|
"sha": "e6dfbc33884000d9d25841bd9c5a84d6558ffd374882cb7b34451eb2cebc2161"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Application and AI-agent security: secrets, authn/authz (least privilege), OWASP Top 10, transport/crypto baseline, secure logging, and agent/MCP/tool-use safety.",
|
|
6
6
|
"updated": "2026-06-01T00:45:28+02:00",
|
|
7
|
-
"cliVersion": "1.30.
|
|
7
|
+
"cliVersion": "1.30.6",
|
|
8
8
|
"sha": "9971e9d9127397d0152e89d24aad3191e2935e55a8483db7fd15f5d4d7a60e7a"
|
|
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-06-16T16:39:13+02:00",
|
|
7
|
-
"cliVersion": "1.30.
|
|
7
|
+
"cliVersion": "1.30.6",
|
|
8
8
|
"sha": "699586cce82ec0a5458288b598ee7e5ebdddb3dfcf19db354d8bc5e85e47c1c7"
|
|
9
9
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"version": "1.2.0",
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Exhaustive completion discipline for long/multi-item tasks - inventory, coverage ledger, verified done.",
|
|
6
|
-
"updated": "2026-
|
|
7
|
-
"cliVersion": "1.30.
|
|
6
|
+
"updated": "2026-07-21T20:25:56+02:00",
|
|
7
|
+
"cliVersion": "1.30.6",
|
|
8
8
|
"sha": "feaf44a9b3ab9676c8ebd3c2a799f156d28419998f5a5355250fe95a28cd5a01"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Concise, realistic technical copy - UI microcopy, descriptions, hints, empty/error states, and README/doc prose that informs without over-explaining or restating the obvious.",
|
|
6
6
|
"updated": "2026-06-26T14:09:06+02:00",
|
|
7
|
-
"cliVersion": "1.30.
|
|
7
|
+
"cliVersion": "1.30.6",
|
|
8
8
|
"sha": "e750988b8de51d8a69be621673dceca5413ebad7e1a48e40acd18aad526d9928"
|
|
9
9
|
}
|
|
@@ -4,6 +4,6 @@
|
|
|
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
6
|
"updated": "2026-06-16T17:11:49+02:00",
|
|
7
|
-
"cliVersion": "1.30.
|
|
7
|
+
"cliVersion": "1.30.6",
|
|
8
8
|
"sha": "3bdf591057b760f674fb2b1425f63acb426cda2c4f042e1a74c5a5d3807df664"
|
|
9
9
|
}
|
|
@@ -33,7 +33,7 @@ description: Strict frontend + backend schema validation (Zod or equivalent), sc
|
|
|
33
33
|
- Use schema-driven validation (e.g. Zod or equivalent).
|
|
34
34
|
- Validation must prevent invalid state before submission.
|
|
35
35
|
- UI must reflect validation state immediately and clearly.
|
|
36
|
-
- Validate cross-record constraints (uniqueness, availability, "already in use") in real time too, not just per-field type/format. When the client already holds the relevant set (the list of accounts, profiles, names, slugs it just rendered), check the input against that loaded data on every change and block submission on a conflict - do not defer the duplicate check to the server round-trip. The server still re-validates as the authority (client checks can be stale), but the user must see the conflict as they type. Mirror the server's exact rule (same pattern, case-folding, reserved values, and scope - e.g. unique per parent vs. globally) so the two never disagree; exclude the record's own current value when editing so renaming to the same name is not flagged.
|
|
36
|
+
- Validate cross-record constraints (uniqueness, availability, "already in use") in real time too, not just per-field type/format. When the client already holds the relevant set (the list of accounts, profiles, names, slugs it just rendered), check the input against that loaded data on every change and block submission on a conflict - do not defer the duplicate check to the server round-trip (this gives instant feedback and spares a redundant request and its DB query). The server still re-validates as the authority (client checks can be stale), but the user must see the conflict as they type. Mirror the server's exact rule (same pattern, case-folding, reserved values, and scope - e.g. unique per parent vs. globally) so the two never disagree; exclude the record's own current value when editing so renaming to the same name is not flagged.
|
|
37
37
|
|
|
38
38
|
### Backend / API Validation (Mandatory)
|
|
39
39
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "validation-policy",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"provider": "FJRG2007/enigma",
|
|
5
5
|
"description": "Strict frontend + backend schema validation, schema consistency, and safe client-facing error handling.",
|
|
6
|
-
"updated": "2026-
|
|
7
|
-
"cliVersion": "1.30.
|
|
8
|
-
"sha": "
|
|
6
|
+
"updated": "2026-07-22T00:21:54+02:00",
|
|
7
|
+
"cliVersion": "1.30.6",
|
|
8
|
+
"sha": "24cda38efc700bed1fcdaca006834b8df6daf75ac5a8b75b00f68728471a26e1"
|
|
9
9
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "enigma-cli",
|
|
3
|
-
"version": "1.30.
|
|
3
|
+
"version": "1.30.6",
|
|
4
4
|
"description": "Everything you need to work with a coding agent: install shared policy skills for Claude Code, OpenAI Codex and opencode, and set up portable git security hooks.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|