@kenkaiiii/ggcoder 5.74.3 → 5.75.0
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/README.md +1 -1
- package/assets/skills/bulletproof/SKILL.md +1 -1
- package/assets/skills/clarify/SKILL.md +1 -1
- package/assets/skills/code-review/SKILL.md +1 -1
- package/assets/skills/compliance-guard/SKILL.md +1 -1
- package/assets/skills/durable/SKILL.md +1 -1
- package/assets/skills/evidence-led-ui/SKILL.md +1 -1
- package/assets/skills/lean/SKILL.md +1 -1
- package/assets/skills/refactoring/SKILL.md +1 -1
- package/assets/skills/root-cause/SKILL.md +1 -1
- package/assets/skills/shared-language/SKILL.md +1 -1
- package/assets/skills/tdd/SKILL.md +1 -1
- package/dist/app-sidecar/app-settings.d.ts +65 -0
- package/dist/app-sidecar/app-settings.js +147 -0
- package/dist/app-sidecar/app-settings.js.map +1 -0
- package/dist/app-sidecar/attachments.d.ts +11 -0
- package/dist/app-sidecar/attachments.js +47 -0
- package/dist/app-sidecar/attachments.js.map +1 -0
- package/dist/app-sidecar/auth-routes.d.ts +3 -0
- package/dist/app-sidecar/auth-routes.js +290 -0
- package/dist/app-sidecar/auth-routes.js.map +1 -0
- package/dist/app-sidecar/autopilot-runner.d.ts +61 -0
- package/dist/app-sidecar/autopilot-runner.js +367 -0
- package/dist/app-sidecar/autopilot-runner.js.map +1 -0
- package/dist/app-sidecar/file-search.d.ts +15 -0
- package/dist/app-sidecar/file-search.js +103 -0
- package/dist/app-sidecar/file-search.js.map +1 -0
- package/dist/app-sidecar/hf-pull-manager.d.ts +20 -0
- package/dist/app-sidecar/hf-pull-manager.js +224 -0
- package/dist/app-sidecar/hf-pull-manager.js.map +1 -0
- package/dist/app-sidecar/history-routes.d.ts +3 -0
- package/dist/app-sidecar/history-routes.js +375 -0
- package/dist/app-sidecar/history-routes.js.map +1 -0
- package/dist/app-sidecar/history.d.ts +67 -0
- package/dist/app-sidecar/history.js +23 -0
- package/dist/app-sidecar/history.js.map +1 -0
- package/dist/app-sidecar/http.d.ts +5 -0
- package/dist/app-sidecar/http.js +27 -0
- package/dist/app-sidecar/http.js.map +1 -0
- package/dist/app-sidecar/integration-routes.d.ts +3 -0
- package/dist/app-sidecar/integration-routes.js +286 -0
- package/dist/app-sidecar/integration-routes.js.map +1 -0
- package/dist/app-sidecar/json-mode.d.ts +10 -0
- package/dist/app-sidecar/json-mode.js +73 -0
- package/dist/app-sidecar/json-mode.js.map +1 -0
- package/dist/app-sidecar/keep-awake.d.ts +4 -0
- package/dist/app-sidecar/keep-awake.js +5 -0
- package/dist/app-sidecar/keep-awake.js.map +1 -0
- package/dist/app-sidecar/ken-context.d.ts +20 -0
- package/dist/app-sidecar/ken-context.js +55 -0
- package/dist/app-sidecar/ken-context.js.map +1 -0
- package/dist/app-sidecar/mcp-routes.d.ts +3 -0
- package/dist/app-sidecar/mcp-routes.js +185 -0
- package/dist/app-sidecar/mcp-routes.js.map +1 -0
- package/dist/app-sidecar/mcp-rows.d.ts +31 -0
- package/dist/app-sidecar/mcp-rows.js +77 -0
- package/dist/app-sidecar/mcp-rows.js.map +1 -0
- package/dist/app-sidecar/progress-manager.d.ts +10 -0
- package/dist/app-sidecar/progress-manager.js +116 -0
- package/dist/app-sidecar/progress-manager.js.map +1 -0
- package/dist/app-sidecar/prompt-routes.d.ts +3 -0
- package/dist/app-sidecar/prompt-routes.js +354 -0
- package/dist/app-sidecar/prompt-routes.js.map +1 -0
- package/dist/app-sidecar/route-context.d.ts +145 -0
- package/dist/app-sidecar/route-context.js +2 -0
- package/dist/app-sidecar/route-context.js.map +1 -0
- package/dist/app-sidecar/run-control-routes.d.ts +3 -0
- package/dist/app-sidecar/run-control-routes.js +430 -0
- package/dist/app-sidecar/run-control-routes.js.map +1 -0
- package/dist/app-sidecar/session-routes.d.ts +3 -0
- package/dist/app-sidecar/session-routes.js +115 -0
- package/dist/app-sidecar/session-routes.js.map +1 -0
- package/dist/app-sidecar/session-types.d.ts +39 -0
- package/dist/app-sidecar/session-types.js +5 -0
- package/dist/app-sidecar/session-types.js.map +1 -0
- package/dist/app-sidecar/task-routes.d.ts +3 -0
- package/dist/app-sidecar/task-routes.js +149 -0
- package/dist/app-sidecar/task-routes.js.map +1 -0
- package/dist/app-sidecar/usage.d.ts +19 -0
- package/dist/app-sidecar/usage.js +153 -0
- package/dist/app-sidecar/usage.js.map +1 -0
- package/dist/app-sidecar/workspace-routes.d.ts +3 -0
- package/dist/app-sidecar/workspace-routes.js +244 -0
- package/dist/app-sidecar/workspace-routes.js.map +1 -0
- package/dist/app-sidecar.js +440 -3720
- package/dist/app-sidecar.js.map +1 -1
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/config.js +1 -1
- package/dist/core/acceptance-checks.js +3 -9
- package/dist/core/acceptance-checks.js.map +1 -1
- package/dist/core/agent-session/helpers.d.ts +26 -0
- package/dist/core/agent-session/helpers.js +47 -0
- package/dist/core/agent-session/helpers.js.map +1 -0
- package/dist/core/agent-session/mcp-tools.d.ts +68 -0
- package/dist/core/agent-session/mcp-tools.js +195 -0
- package/dist/core/agent-session/mcp-tools.js.map +1 -0
- package/dist/core/agent-session/run-loop-monitor.d.ts +63 -0
- package/dist/core/agent-session/run-loop-monitor.js +164 -0
- package/dist/core/agent-session/run-loop-monitor.js.map +1 -0
- package/dist/core/agent-session/transcript-markers.d.ts +57 -0
- package/dist/core/agent-session/transcript-markers.js +166 -0
- package/dist/core/agent-session/transcript-markers.js.map +1 -0
- package/dist/core/agent-session/verification-tracker.d.ts +46 -0
- package/dist/core/agent-session/verification-tracker.js +246 -0
- package/dist/core/agent-session/verification-tracker.js.map +1 -0
- package/dist/core/agent-session.d.ts +21 -87
- package/dist/core/agent-session.js +141 -712
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-providers.js +3 -3
- package/dist/core/auth-providers.js.map +1 -1
- package/dist/core/bundled-agents.js +6 -6
- package/dist/core/bundled-agents.js.map +1 -1
- package/dist/core/checklist-git.d.ts +19 -0
- package/dist/core/checklist-git.js +54 -0
- package/dist/core/checklist-git.js.map +1 -0
- package/dist/core/checklist-items.d.ts +10 -1
- package/dist/core/checklist-items.js +22 -0
- package/dist/core/checklist-items.js.map +1 -1
- package/dist/core/checklist-prompt.d.ts +5 -1
- package/dist/core/checklist-prompt.js +16 -5
- package/dist/core/checklist-prompt.js.map +1 -1
- package/dist/core/checklist-snapshot.d.ts +5 -1
- package/dist/core/checklist-snapshot.js +19 -2
- package/dist/core/checklist-snapshot.js.map +1 -1
- package/dist/core/context-limits.js +1 -1
- package/dist/core/context-limits.js.map +1 -1
- package/dist/core/skills.js +6 -9
- package/dist/core/skills.js.map +1 -1
- package/dist/core/style-packs/index.js +2 -11
- package/dist/core/style-packs/index.js.map +1 -1
- package/dist/core/style-packs/packs.d.ts +3 -12
- package/dist/core/style-packs/packs.js +132 -173
- package/dist/core/style-packs/packs.js.map +1 -1
- package/dist/system-prompt.js +55 -78
- package/dist/system-prompt.js.map +1 -1
- package/dist/tools/ask-user.js +13 -74
- package/dist/tools/ask-user.js.map +1 -1
- package/dist/tools/bash.js +13 -78
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/checklist.d.ts +2 -10
- package/dist/tools/checklist.js +7 -39
- package/dist/tools/checklist.js.map +1 -1
- package/dist/tools/code-nav.js +7 -29
- package/dist/tools/code-nav.js.map +1 -1
- package/dist/tools/edit.d.ts +3 -9
- package/dist/tools/edit.js +66 -65
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/enter-plan.js +2 -7
- package/dist/tools/enter-plan.js.map +1 -1
- package/dist/tools/exit-plan.js +2 -3
- package/dist/tools/exit-plan.js.map +1 -1
- package/dist/tools/find.js +3 -4
- package/dist/tools/find.js.map +1 -1
- package/dist/tools/grep.js +6 -18
- package/dist/tools/grep.js.map +1 -1
- package/dist/tools/ls.js +3 -3
- package/dist/tools/ls.js.map +1 -1
- package/dist/tools/prompt-hints.js +34 -47
- package/dist/tools/prompt-hints.js.map +1 -1
- package/dist/tools/read.js +8 -20
- package/dist/tools/read.js.map +1 -1
- package/dist/tools/search-code.js +4 -12
- package/dist/tools/search-code.js.map +1 -1
- package/dist/tools/skill.js +13 -7
- package/dist/tools/skill.js.map +1 -1
- package/dist/tools/subagent-control.js +7 -22
- package/dist/tools/subagent-control.js.map +1 -1
- package/dist/tools/subagent.js +4 -7
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/task-output.js +4 -15
- package/dist/tools/task-output.js.map +1 -1
- package/dist/tools/task-send.js +5 -17
- package/dist/tools/task-send.js.map +1 -1
- package/dist/tools/task-stop.js +2 -2
- package/dist/tools/task-stop.js.map +1 -1
- package/dist/tools/tool-search.js +2 -7
- package/dist/tools/tool-search.js.map +1 -1
- package/dist/tools/tool-tiers.d.ts +17 -4
- package/dist/tools/tool-tiers.js +38 -15
- package/dist/tools/tool-tiers.js.map +1 -1
- package/dist/tools/web-fetch.js +7 -33
- package/dist/tools/web-fetch.js.map +1 -1
- package/dist/tools/write.js +3 -4
- package/dist/tools/write.js.map +1 -1
- package/dist/ui/components/Footer.js +1 -2
- package/dist/ui/components/Footer.js.map +1 -1
- package/package.json +7 -4
- package/dist/core/api-benchmark.d.ts +0 -63
- package/dist/core/api-benchmark.js +0 -381
- package/dist/core/api-benchmark.js.map +0 -1
- package/dist/core/bash-spawn-benchmark.d.ts +0 -1
- package/dist/core/bash-spawn-benchmark.js +0 -139
- package/dist/core/bash-spawn-benchmark.js.map +0 -1
- package/dist/core/cache-warm-benchmark.d.ts +0 -21
- package/dist/core/cache-warm-benchmark.js +0 -170
- package/dist/core/cache-warm-benchmark.js.map +0 -1
- package/dist/core/fast-apply-benchmark.d.ts +0 -25
- package/dist/core/fast-apply-benchmark.js +0 -284
- package/dist/core/fast-apply-benchmark.js.map +0 -1
- package/dist/core/hashline-edit-benchmark.d.ts +0 -88
- package/dist/core/hashline-edit-benchmark.js +0 -518
- package/dist/core/hashline-edit-benchmark.js.map +0 -1
- package/dist/core/semantic-search-benchmark.d.ts +0 -36
- package/dist/core/semantic-search-benchmark.js +0 -211
- package/dist/core/semantic-search-benchmark.js.map +0 -1
- package/dist/core/speed-benchmark.d.ts +0 -132
- package/dist/core/speed-benchmark.js +0 -410
- package/dist/core/speed-benchmark.js.map +0 -1
|
@@ -1,229 +1,188 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Per-language style packs injected into the system prompt when the detector
|
|
3
|
-
* sees the language is active
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* 1. Apply the strictest reasonable subset of *idiomatic* style — nothing
|
|
7
|
-
* exotic the model has to think about. The agent already knows these
|
|
8
|
-
* patterns; the pack just narrows the choice space.
|
|
9
|
-
* 2. Optimize for low ambiguity, not for human readability. Bullet form.
|
|
10
|
-
* 3. Errors as values, schema at boundaries, mechanical formatting,
|
|
11
|
-
* one canonical way to do common tasks.
|
|
12
|
-
* 4. ~30-50 lines per pack. Anything longer is bloat in the system prompt.
|
|
13
|
-
* 5. Avoid triple backticks (template literal conflict). Use single
|
|
14
|
-
* backticks for inline tokens, escape with \\\` when needed.
|
|
3
|
+
* sees the language is active. Keep each pack ≤ ~350 chars: tooling default,
|
|
4
|
+
* the most bug-preventing rules, and what to avoid. No rationale or examples.
|
|
5
|
+
* Avoid triple backticks (template literal conflict).
|
|
15
6
|
*/
|
|
16
7
|
export const PACKS = {
|
|
17
8
|
typescript: `### TypeScript
|
|
18
9
|
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
- **Avoid.** \`enum\` (use \`as const\` objects + \`typeof\` unions). Class inheritance beyond one level. \`namespace\`. Decorators outside framework-required slots. Conditional/mapped types in app code (keep in \`types.ts\` if unavoidable).`,
|
|
10
|
+
- \`tsc --strict\` + \`noUncheckedIndexedAccess\`; Biome for format/lint.
|
|
11
|
+
- No \`any\`, no non-null \`!\`; prefer \`satisfies\` over \`as\`.
|
|
12
|
+
- Validate external input with a schema lib.
|
|
13
|
+
- Result-style returns for expected failures; throw only for bugs.
|
|
14
|
+
- Named exports only; no floating promises; pass \`AbortSignal\` to I/O.
|
|
15
|
+
- Avoid \`enum\`, \`namespace\`, deep inheritance.`,
|
|
26
16
|
javascript: `### JavaScript
|
|
27
17
|
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
- **Errors.** Return \`{ ok: true, value } | { ok: false, error }\` discriminated objects for expected failures. \`throw\` only for unrecoverable bugs. Always handle promise rejections.
|
|
32
|
-
- **Modules.** Named exports only. One concept per file. Use feature folders. No CommonJS \`require\` in new code.
|
|
33
|
-
- **Async.** \`async/await\` exclusively. \`Promise.all\` for parallel work; never sequential awaits in a loop unless ordering is required.
|
|
34
|
-
- **Avoid.** \`var\`. Implicit globals. \`==\` (use \`===\`). Prototype mutation. \`with\`. \`eval\`. \`arguments\` (use rest params).`,
|
|
18
|
+
- ESM; \`const\`, \`===\`, no \`var\`; JSDoc + \`// @ts-check\`.
|
|
19
|
+
- Validate external input with a schema lib; no floating promises.
|
|
20
|
+
- Avoid default exports, prototype mutation, implicit globals.`,
|
|
35
21
|
python: `### Python
|
|
36
22
|
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
- **Avoid.** Decorators that mutate (use \`@dataclass\`, \`@property\`, \`@staticmethod\`, framework-required only). \`*args\`/\`**kwargs\` except at adapter edges. Mutable default arguments. \`from x import *\`. Circular imports — refactor into a smaller module.`,
|
|
23
|
+
- Python 3.11+; ruff (lint + format); pyright/mypy strict.
|
|
24
|
+
- Type hints on every public function; no bare \`Any\`.
|
|
25
|
+
- Validate external input with Pydantic or dataclasses + checks.
|
|
26
|
+
- Raise specific exceptions; never bare \`except:\`.
|
|
27
|
+
- \`pathlib\` over \`os.path\`; context managers for resources.
|
|
28
|
+
- Avoid mutable default args, star imports, global state.`,
|
|
44
29
|
go: `### Go
|
|
45
30
|
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
- **Generics.** Use only when they remove real duplication. Concrete types are the default.
|
|
53
|
-
- **Avoid.** \`init()\` functions with side effects. Global mutable state. Returning bare \`error\` without wrapping context. Naked returns in functions longer than 5 lines. \`interface{}\` in new code.`,
|
|
31
|
+
- \`gofmt\`, \`go vet\`, \`golangci-lint\`.
|
|
32
|
+
- Always check errors; wrap with \`fmt.Errorf("...: %w", err)\`.
|
|
33
|
+
- \`context.Context\` first param for I/O; respect cancellation.
|
|
34
|
+
- Small interfaces defined at the consumer; return structs.
|
|
35
|
+
- Every goroutine has a clear owner and exit path.
|
|
36
|
+
- Avoid \`panic\` for expected errors, \`init()\` side effects, globals.`,
|
|
54
37
|
rust: `### Rust
|
|
55
38
|
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
- **Avoid.** Macro-heavy crates in app logic. Custom \`macro_rules!\` unless it removes >5 real call sites. Trait towers. \`Box<dyn Error>\` (use \`anyhow::Error\`). String-typed APIs where an enum would do.`,
|
|
39
|
+
- \`rustfmt\` + \`clippy -D warnings\`.
|
|
40
|
+
- \`Result\` for fallible ops; \`thiserror\` in libs, \`anyhow\` in bins.
|
|
41
|
+
- No \`unwrap\`/\`expect\` outside tests or proven invariants.
|
|
42
|
+
- Newtypes for domain primitives; borrow over clone.
|
|
43
|
+
- \`unsafe\` only with a \`// SAFETY:\` comment.
|
|
44
|
+
- Avoid \`Rc<RefCell>\` webs and needless \`Box<dyn>\`.`,
|
|
63
45
|
java: `### Java
|
|
64
46
|
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
47
|
+
- Java 21+; Spotless/google-java-format; Error Prone.
|
|
48
|
+
- Records for data; sealed interfaces for variants.
|
|
49
|
+
- \`Optional\` for absent returns; never return \`null\` collections.
|
|
50
|
+
- Validate input at boundaries; immutable by default (\`final\`).
|
|
51
|
+
- try-with-resources for closeables.
|
|
52
|
+
- Avoid checked-exception swallowing, field injection, deep inheritance.`,
|
|
71
53
|
kotlin: `### Kotlin
|
|
72
54
|
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
- **Avoid.** Companion-object factories when a top-level function works. Nested classes for grouping (use packages). Reflection. Overusing operator overloading.`,
|
|
55
|
+
- ktlint/detekt; explicit API mode for libraries.
|
|
56
|
+
- \`val\` over \`var\`; data/sealed classes for state.
|
|
57
|
+
- No \`!!\`; handle nullability explicitly.
|
|
58
|
+
- Structured concurrency: no \`GlobalScope\`; pass scopes.
|
|
59
|
+
- Sealed Result types for expected failures.
|
|
60
|
+
- Avoid \`lateinit\` abuse and platform-type leaks.`,
|
|
80
61
|
csharp: `### C#
|
|
81
62
|
|
|
82
|
-
-
|
|
83
|
-
-
|
|
84
|
-
-
|
|
85
|
-
-
|
|
86
|
-
-
|
|
87
|
-
- **LINQ.** Keep chains shallow (≤ 3 operators). Pull complex queries into named methods or local functions.
|
|
88
|
-
- **Avoid.** Reflection in hot paths. Static mutable state. Source generators in app code (libraries only). Multi-level inheritance. Manual \`IDisposable\` when \`using\` works.`,
|
|
63
|
+
- \`<Nullable>enable</Nullable>\`, warnings as errors; \`dotnet format\`.
|
|
64
|
+
- Records for data; \`required\`/\`init\` properties.
|
|
65
|
+
- \`async\` all the way; pass \`CancellationToken\`; no \`.Result\`/\`.Wait()\`.
|
|
66
|
+
- Validate input at boundaries; \`using\` for disposables.
|
|
67
|
+
- Avoid \`async void\`, static mutable state, catching \`Exception\` broadly.`,
|
|
89
68
|
cpp: `### C++
|
|
90
69
|
|
|
91
|
-
-
|
|
92
|
-
-
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
-
|
|
96
|
-
- **Headers/modules.** C++20 modules when supported; otherwise include guards via \`#pragma once\`. No transitive includes — each file includes what it uses.
|
|
97
|
-
- **Avoid.** C-style casts (use \`static_cast\` / \`reinterpret_cast\`). Raw arrays in new code (use \`std::array\` or \`std::vector\`). Macros for anything other than include guards or platform conditionals. Template metaprogramming beyond \`if constexpr\` + concepts. Multiple inheritance of non-interface classes.`,
|
|
70
|
+
- C++20; clang-format + clang-tidy; \`-Wall -Wextra -Werror\`.
|
|
71
|
+
- RAII everywhere; \`unique_ptr\` by default, no raw \`new\`/\`delete\`.
|
|
72
|
+
- \`std::span\`/\`string_view\` for non-owning views; \`const\` by default.
|
|
73
|
+
- \`std::expected\`/optional for expected failures.
|
|
74
|
+
- Avoid macros, C casts, owning raw pointers, UB-prone indexing.`,
|
|
98
75
|
c: `### C
|
|
99
76
|
|
|
100
|
-
-
|
|
101
|
-
-
|
|
102
|
-
-
|
|
103
|
-
-
|
|
104
|
-
-
|
|
105
|
-
- **Strings.** Length-prefixed slices or explicit \`(ptr, len)\` pairs over null-terminated wherever possible. \`snprintf\` with explicit buffer sizes — never \`sprintf\`, \`strcpy\`, \`gets\`.
|
|
106
|
-
- **Avoid.** Macros beyond \`#include\` guards, platform conditionals, and named constants. Variable-length arrays. Implicit int. \`goto\` except for unified cleanup paths.`,
|
|
77
|
+
- C17; \`-Wall -Wextra -Werror\`; ASan/UBSan in tests.
|
|
78
|
+
- Check every return value and allocation.
|
|
79
|
+
- Pass buffer lengths explicitly; use bounded functions (\`snprintf\`).
|
|
80
|
+
- Single cleanup path (\`goto cleanup\`) per function.
|
|
81
|
+
- Avoid \`gets\`/\`strcpy\`/\`sprintf\`, globals, unchecked casts.`,
|
|
107
82
|
ruby: `### Ruby
|
|
108
83
|
|
|
109
|
-
-
|
|
110
|
-
-
|
|
111
|
-
-
|
|
112
|
-
-
|
|
113
|
-
-
|
|
114
|
-
- **Avoid.** \`method_missing\` and \`respond_to_missing?\` in new code. Monkey-patching core classes. \`define_method\` at runtime. \`eval\` family. Heavy DSLs outside the few canonical cases (Rails routes, RSpec, etc. — isolate them).`,
|
|
84
|
+
- Ruby 3.2+; RuboCop/Standard; \`# frozen_string_literal: true\`.
|
|
85
|
+
- Validate input at boundaries; explicit keyword arguments.
|
|
86
|
+
- Raise specific error classes; never rescue \`Exception\`.
|
|
87
|
+
- Small objects over concerns/mixins.
|
|
88
|
+
- Avoid monkey-patching, \`method_missing\`, global state.`,
|
|
115
89
|
php: `### PHP
|
|
116
90
|
|
|
117
|
-
-
|
|
118
|
-
-
|
|
119
|
-
-
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
- **Avoid.** Untyped parameters or returns. \`@\` error suppression. Globals. Static mutable state. Multiple inheritance via traits as a workaround for poor design. \`extract()\`, \`compact()\`, variable variables.`,
|
|
91
|
+
- PHP 8.2+; \`declare(strict_types=1);\`; PHPStan max + PHP-CS-Fixer.
|
|
92
|
+
- Typed properties, params, returns; \`readonly\` classes for data.
|
|
93
|
+
- Validate input at boundaries; prepared statements only.
|
|
94
|
+
- Enums over string constants; specific exceptions.
|
|
95
|
+
- Avoid arrays as untyped structs, globals, \`@\` suppression.`,
|
|
123
96
|
swift: `### Swift
|
|
124
97
|
|
|
125
|
-
-
|
|
126
|
-
-
|
|
127
|
-
-
|
|
128
|
-
-
|
|
129
|
-
-
|
|
130
|
-
- **Structure.** One public type per file. Group files by feature. Extensions for protocol conformances, kept in the same file unless cross-cutting.
|
|
131
|
-
- **Avoid.** Implicit-unwrapped optionals (\`Type!\`) in new code. \`NSObject\` inheritance unless interop requires it. Singletons as the primary state container. Reflection (\`Mirror\`) in hot paths.`,
|
|
98
|
+
- Swift 6 strict concurrency; SwiftFormat/SwiftLint.
|
|
99
|
+
- Value types (\`struct\`/\`enum\`) by default; \`let\` over \`var\`.
|
|
100
|
+
- No force unwrap \`!\` or \`try!\`; use \`guard let\`.
|
|
101
|
+
- \`async/await\` + actors; typed throws/Result for expected failures.
|
|
102
|
+
- Avoid singletons, implicitly unwrapped optionals, \`@unchecked Sendable\`.`,
|
|
132
103
|
scala: `### Scala
|
|
133
104
|
|
|
134
|
-
-
|
|
135
|
-
-
|
|
136
|
-
-
|
|
137
|
-
-
|
|
138
|
-
-
|
|
139
|
-
- **Avoid.** \`null\`. \`var\` in business code. Implicit conversions. Operator-soup DSLs in app logic (libraries only). \`asInstanceOf\` outside adapter boundaries.`,
|
|
105
|
+
- Scala 3; scalafmt + \`-Werror\`.
|
|
106
|
+
- Immutable case classes and enums; ADTs for state.
|
|
107
|
+
- \`Either\`/\`Option\` for expected failures; no \`null\`.
|
|
108
|
+
- Explicit types on public members.
|
|
109
|
+
- Avoid implicit conversions, \`var\`, throwing in pure code.`,
|
|
140
110
|
elixir: `### Elixir
|
|
141
111
|
|
|
142
|
-
-
|
|
143
|
-
-
|
|
144
|
-
-
|
|
145
|
-
-
|
|
146
|
-
-
|
|
147
|
-
- **Avoid.** Macros in app code (libraries may need them; mark with care). \`Process.put\`/\`get\` for state. Atom-keyed maps from untrusted input (\`String.to_atom\` on user data leaks). Hidden side effects in pipelines.`,
|
|
112
|
+
- \`mix format\`, Credo, Dialyzer.
|
|
113
|
+
- \`{:ok, v}\` / \`{:error, r}\` returns; \`with\` for chains.
|
|
114
|
+
- Pattern match in function heads; \`@spec\` on public functions.
|
|
115
|
+
- Supervise every process; let it crash.
|
|
116
|
+
- Avoid \`try/rescue\` for control flow, process dictionary, atom leaks.`,
|
|
148
117
|
haskell: `### Haskell
|
|
149
118
|
|
|
150
|
-
-
|
|
151
|
-
-
|
|
152
|
-
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
155
|
-
- **Avoid.** Partial functions (\`head\`, \`!!\`, \`fromJust\`) — use total alternatives. Lens-heavy chains in app logic. \`undefined\` in committed code. Orphan instances.`,
|
|
119
|
+
- GHC2021; \`-Wall -Werror\`; fourmolu + hlint.
|
|
120
|
+
- Type signatures on all top-level bindings.
|
|
121
|
+
- \`Either\`/\`Maybe\` for expected failures; newtypes for domain values.
|
|
122
|
+
- Strict data fields; \`Text\` over \`String\`.
|
|
123
|
+
- Avoid partial functions (\`head\`, \`fromJust\`), orphan instances.`,
|
|
156
124
|
ocaml: `### OCaml
|
|
157
125
|
|
|
158
|
-
-
|
|
159
|
-
-
|
|
160
|
-
-
|
|
161
|
-
-
|
|
162
|
-
-
|
|
163
|
-
- **Avoid.** \`Obj.magic\` outside truly unavoidable interop. Global mutable state. Polymorphic equality (\`=\`) on complex types — use type-specific \`equal\` functions. Pervasives \`Stdlib\` shadowing without a clear reason.`,
|
|
126
|
+
- dune + ocamlformat; warnings as errors.
|
|
127
|
+
- \`.mli\` interfaces for every public module.
|
|
128
|
+
- \`result\` for expected failures; exhaustive matches.
|
|
129
|
+
- Variants over booleans/strings for state.
|
|
130
|
+
- Avoid partial functions, \`Obj.magic\`, mutable globals.`,
|
|
164
131
|
fsharp: `### F#
|
|
165
132
|
|
|
166
|
-
-
|
|
167
|
-
-
|
|
168
|
-
-
|
|
169
|
-
-
|
|
170
|
-
-
|
|
171
|
-
- **Avoid.** Mutable state outside small, well-contained pockets. Object expressions where a module function would do. \`obj\` and downcasts in business code. \`null\` even for interop — wrap immediately in \`Option\`.`,
|
|
133
|
+
- Fantomas; warnings as errors.
|
|
134
|
+
- Records and DUs for data; immutable by default.
|
|
135
|
+
- \`Result\`/\`Option\` for expected failures; exhaustive matches.
|
|
136
|
+
- \`task {}\` with \`CancellationToken\` for I/O.
|
|
137
|
+
- Avoid nulls, classes for pure data, mutable globals.`,
|
|
172
138
|
clojure: `### Clojure
|
|
173
139
|
|
|
174
|
-
-
|
|
175
|
-
-
|
|
176
|
-
-
|
|
177
|
-
-
|
|
178
|
-
-
|
|
179
|
-
- **Avoid.** Macros in app code unless they remove genuine ceremony. Dynamic vars (\`*var*\`) for hidden parameters. \`def\` inside functions. \`eval\` in production code. Threading-macro chains longer than ~5 steps without a named intermediate.`,
|
|
140
|
+
- clj-kondo + cljfmt.
|
|
141
|
+
- Pure functions over immutable maps; side effects at edges.
|
|
142
|
+
- Validate boundary data with Malli or spec.
|
|
143
|
+
- Return \`ex-info\` with data for errors.
|
|
144
|
+
- Avoid global atoms, dynamic vars as config, deep macros.`,
|
|
180
145
|
dart: `### Dart
|
|
181
146
|
|
|
182
|
-
-
|
|
183
|
-
-
|
|
184
|
-
-
|
|
185
|
-
-
|
|
186
|
-
-
|
|
187
|
-
- **Avoid.** \`dynamic\` in new code. Implicit \`new\` (write it out where ambiguous). \`var\` for public API. Mutable static fields. Long widget build methods — extract.`,
|
|
147
|
+
- Sound null safety; \`dart format\`; strict \`analysis_options\` lints.
|
|
148
|
+
- No \`!\` bang operator without proof; no \`dynamic\`.
|
|
149
|
+
- Immutable models (\`final\` fields); sealed classes for state.
|
|
150
|
+
- Await every Future; cancel subscriptions.
|
|
151
|
+
- Avoid global mutable state and \`late\` misuse.`,
|
|
188
152
|
lua: `### Lua
|
|
189
153
|
|
|
190
|
-
-
|
|
191
|
-
-
|
|
192
|
-
-
|
|
193
|
-
-
|
|
194
|
-
-
|
|
195
|
-
- **Avoid.** Implicit globals — set \`luacheck\` to flag them. Metatable cleverness in app logic. \`setfenv\`/\`getfenv\` (gone in 5.2+) or environment hacks. String-key tables when an index would work.`,
|
|
154
|
+
- StyLua + luacheck.
|
|
155
|
+
- \`local\` everything; no implicit globals.
|
|
156
|
+
- Return \`nil, err\` for expected failures; \`pcall\` at boundaries.
|
|
157
|
+
- Modules return a table; no side effects on require.
|
|
158
|
+
- Avoid global mutation and metatable magic.`,
|
|
196
159
|
zig: `### Zig
|
|
197
160
|
|
|
198
|
-
-
|
|
199
|
-
-
|
|
200
|
-
-
|
|
201
|
-
-
|
|
202
|
-
-
|
|
203
|
-
- **Avoid.** \`@cImport\` outside a single \`c.zig\` boundary module. Heap allocation in hot paths when a fixed-size buffer works. Mixing different allocators in one ownership chain.`,
|
|
161
|
+
- \`zig fmt\`; latest stable Zig.
|
|
162
|
+
- Error unions with \`try\`; never discard errors.
|
|
163
|
+
- Pass allocators explicitly; \`defer\`/\`errdefer\` for cleanup.
|
|
164
|
+
- Test with \`std.testing.allocator\` for leak checks.
|
|
165
|
+
- Avoid \`@ptrCast\` without need, \`unreachable\` for real errors, globals.`,
|
|
204
166
|
sql: `### SQL
|
|
205
167
|
|
|
206
|
-
-
|
|
207
|
-
-
|
|
208
|
-
-
|
|
209
|
-
-
|
|
210
|
-
-
|
|
211
|
-
- **Avoid.** String interpolation into queries from app code — use parameterized queries. \`SELECT INTO\` for permanent tables. ORM lazy-loading patterns hidden behind \`N+1\` queries. Wide tables with \`JSON\` columns where a relational design fits.`,
|
|
168
|
+
- sqlfluff; uppercase keywords.
|
|
169
|
+
- Parameterized queries only; never string-concat input.
|
|
170
|
+
- Explicit column lists; no \`SELECT *\` in app code.
|
|
171
|
+
- Constraints (NOT NULL, FK, UNIQUE) in schema; forward-only migrations.
|
|
172
|
+
- Avoid implicit joins and unbounded queries.`,
|
|
212
173
|
bash: `### Bash / Shell
|
|
213
174
|
|
|
214
|
-
-
|
|
215
|
-
-
|
|
216
|
-
-
|
|
217
|
-
-
|
|
218
|
-
-
|
|
219
|
-
- **Avoid.** \`eval\`. Word splitting / glob expansion by leaving variables unquoted. Mutating \`IFS\` in the middle of a script. Scripts longer than ~100 lines — switch to Python or Go.`,
|
|
175
|
+
- \`set -euo pipefail\`; shellcheck + shfmt.
|
|
176
|
+
- Quote every expansion: \`"$var"\`.
|
|
177
|
+
- \`[[ ]]\` over \`[ ]\`; \`local\` in functions.
|
|
178
|
+
- \`mktemp\` + \`trap\` cleanup.
|
|
179
|
+
- Avoid parsing \`ls\`, \`eval\`, backticks.`,
|
|
220
180
|
terraform: `### Terraform / HCL
|
|
221
181
|
|
|
222
|
-
-
|
|
223
|
-
-
|
|
224
|
-
-
|
|
225
|
-
-
|
|
226
|
-
-
|
|
227
|
-
- **Avoid.** \`count\` for set-like collections — use \`for_each\` with a map. Hard-coded provider regions or account IDs (use variables). Implicit dependencies — declare \`depends_on\` when ordering matters. \`local-exec\` provisioners as a primary tool (use them only as a last resort).`,
|
|
182
|
+
- \`terraform fmt\` + \`validate\` + tflint.
|
|
183
|
+
- Pin provider and module versions.
|
|
184
|
+
- Typed variables with \`validation\` blocks.
|
|
185
|
+
- Remote state with locking; no secrets in code or state outputs.
|
|
186
|
+
- Avoid hardcoded IDs, \`count\` for keyed resources (use \`for_each\`).`,
|
|
228
187
|
};
|
|
229
188
|
//# sourceMappingURL=packs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packs.js","sourceRoot":"","sources":["../../../src/core/style-packs/packs.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"packs.js","sourceRoot":"","sources":["../../../src/core/style-packs/packs.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,KAAK,GAAyC;IACzD,UAAU,EAAE;;;;;;;mDAOqC;IAEjD,UAAU,EAAE;;;;+DAIiD;IAE7D,MAAM,EAAE;;;;;;;0DAOgD;IAExD,EAAE,EAAE;;;;;;;yEAOmE;IAEvE,IAAI,EAAE;;;;;;;wDAOgD;IAEtD,IAAI,EAAE;;;;;;;yEAOiE;IAEvE,MAAM,EAAE;;;;;;;oDAO0C;IAElD,MAAM,EAAE;;;;;;8EAMoE;IAE5E,GAAG,EAAE;;;;;;iEAM0D;IAE/D,CAAC,EAAE;;;;;;mEAM8D;IAEjE,IAAI,EAAE;;;;;;2DAMmD;IAEzD,GAAG,EAAE;;;;;;+DAMwD;IAE7D,KAAK,EAAE;;;;;;6EAMoE;IAE3E,KAAK,EAAE;;;;;;8DAMqD;IAE5D,MAAM,EAAE;;;;;;yEAM+D;IAEvE,OAAO,EAAE;;;;;;sEAM2D;IAEpE,KAAK,EAAE;;;;;;2DAMkD;IAEzD,MAAM,EAAE;;;;;;uDAM6C;IAErD,OAAO,EAAE;;;;;;2DAMgD;IAEzD,IAAI,EAAE;;;;;;kDAM0C;IAEhD,GAAG,EAAE;;;;;;6CAMsC;IAE3C,GAAG,EAAE;;;;;;6EAMsE;IAE3E,GAAG,EAAE;;;;;;8CAMuC;IAE5C,IAAI,EAAE;;;;;;6CAMqC;IAE3C,SAAS,EAAE;;;;;;yEAM4D;CACxE,CAAC"}
|