@cassiomc1/forgeloop 2.0.0-rc.5 → 2.0.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.
Files changed (71) hide show
  1. package/CONTRIBUTING.md +3 -1
  2. package/DOCS_INDEX.md +2 -0
  3. package/ENG/accessibility-eng.md +6 -6
  4. package/ENG/clean-code-eng.md +2 -2
  5. package/ENG/design-code-eng.md +13 -13
  6. package/ENG/documentation-quality-eng.md +10 -2
  7. package/ENG/flutter-development-eng.md +38 -59
  8. package/ENG/games-code-design-web-eng.md +2 -2
  9. package/ENG/perf-code-eng.md +3 -3
  10. package/ENG/php-development-eng.md +2 -2
  11. package/ENG/premium-sites-studio-eng.md +9 -2
  12. package/ENG/python-development-eng.md +7 -1
  13. package/ENG/rust-development-eng.md +22 -32
  14. package/ENG/sec-code-eng.md +19 -3
  15. package/ENG/taste-frontend-eng.md +108 -1
  16. package/ENG/test-code-eng.md +2 -2
  17. package/GUIDE_ROUTER.md +18 -4
  18. package/README.md +15 -13
  19. package/THIRD_PARTY_NOTICES.md +59 -6
  20. package/docs/AGENT_PROTOCOL_SUMMARY.md +1 -1
  21. package/docs/AGENT_SKILL.md +16 -0
  22. package/docs/DOCUMENTATION_GUIDE.md +6 -0
  23. package/docs/GUIDE_MAINTENANCE.md +106 -0
  24. package/docs/PACKAGE_CONTENTS.md +18 -0
  25. package/docs/RELEASE_CHECKLIST.md +41 -29
  26. package/docs/REVENUE_CENTRIC_DESIGN.md +69 -0
  27. package/docs/SECURITY_AUDIT_SKILL.md +131 -0
  28. package/docs/SECURITY_REVIEW.md +6 -0
  29. package/docs/STABLE_2_ACCEPTANCE.md +80 -0
  30. package/docs/TROUBLESHOOTING.md +12 -0
  31. package/docs/documentation-manifest.json +244 -0
  32. package/package.json +12 -3
  33. package/scripts/generate-forgeloop-skill.mjs +8 -0
  34. package/scripts/verify-revenue-design-skill.mjs +37 -0
  35. package/scripts/verify-security-audit-skill.mjs +68 -0
  36. package/skills/forgeloop/SKILL.md +8 -0
  37. package/skills/forgeloop/references/revenue-centric-design/LICENSE +30 -0
  38. package/skills/forgeloop/references/revenue-centric-design/PIN.json +14 -0
  39. package/skills/forgeloop/references/revenue-centric-design/SKILL.md +64 -0
  40. package/skills/forgeloop/references/revenue-centric-design/references/playbook.md +36 -0
  41. package/skills/security-audit/AI-AND-LLM.md +83 -0
  42. package/skills/security-audit/ATTACK-CLASSES.md +130 -0
  43. package/skills/security-audit/CLIENT-SIDE.md +83 -0
  44. package/skills/security-audit/CLOUD-AND-DEPLOYMENT.md +86 -0
  45. package/skills/security-audit/DATA-ISOLATION-AND-LIFECYCLE.md +84 -0
  46. package/skills/security-audit/DESKTOP-MOBILE-AND-LOCAL-IPC.md +89 -0
  47. package/skills/security-audit/HUNTING.md +251 -0
  48. package/skills/security-audit/LICENSE +21 -0
  49. package/skills/security-audit/MEMORY-SAFETY-AND-BINARY.md +101 -0
  50. package/skills/security-audit/PIN.json +30 -0
  51. package/skills/security-audit/PROTOCOLS-RPC-AND-MESSAGING.md +81 -0
  52. package/skills/security-audit/RECONNAISSANCE.md +156 -0
  53. package/skills/security-audit/RESOURCE-EXHAUSTION-AND-AVAILABILITY.md +78 -0
  54. package/skills/security-audit/SKILL.md +192 -0
  55. package/skills/security-audit/SUPPLY-CHAIN-AND-RELEASE.md +73 -0
  56. package/skills/security-audit/VALIDATION-AND-REPORTING.md +186 -0
  57. package/skills/security-audit/WEB-PROTOCOL-AND-AUTH.md +105 -0
  58. package/skills/security-audit/report-schema.json +461 -0
  59. package/skills/security-audit/validate-coverage-ledger.cjs +872 -0
  60. package/skills/security-audit/validate-coverage-ledger.test.cjs +740 -0
  61. package/skills/security-audit/validate-findings.cjs +773 -0
  62. package/skills/security-audit/validate-findings.test.cjs +652 -0
  63. package/src/core/completion-artifacts.js +4 -7
  64. package/src/core/diagnosis.js +3 -5
  65. package/src/core/diagnostic-record.js +4 -4
  66. package/src/core/next-action-recovery-phases.js +3 -0
  67. package/src/core/next-action-review-correction.js +26 -0
  68. package/src/core/next-action-review-phase.js +11 -10
  69. package/src/core/reconcile-closure.js +5 -0
  70. package/src/core/review-correction.js +51 -0
  71. package/src/storage/capabilities.js +1 -1
package/CONTRIBUTING.md CHANGED
@@ -86,7 +86,9 @@ forwarded to Node. Unsupported options and unmatched selectors fail explicitly.
86
86
  Run `npm run complexity:check` with lint. Reductions are welcome; increases to
87
87
  the committed hotspot budget require an explicit explanation and review.
88
88
  TypeScript and YAML are development-only dependencies for packed-consumer and
89
- semantic workflow verification; the core runtime has no npm dependencies.
89
+ semantic workflow verification. The core runtime exact-pins `@typesafe-ai/sdk`
90
+ for the mandatory semantic decision plane and `smol-toml` for structural Cargo
91
+ parsing; `scripts/check-dependency-policy.mjs` owns the allowlist.
90
92
 
91
93
  Filesystem transaction-payload maintenance is retired with the SQLite
92
94
  migration. Preserve legacy evidence for explicit migration and diagnosis. See
package/DOCS_INDEX.md CHANGED
@@ -19,6 +19,7 @@ integration and guide context. Use this map before editing documentation.
19
19
  | Cross-harness continuity | [`docs/CROSS_HARNESS_CONTINUITY.md`](./docs/CROSS_HARNESS_CONTINUITY.md) | Operational resume guidance, immutable handoffs, and multi-tool resumption |
20
20
  | Agent bootstrap summary | [`docs/AGENT_PROTOCOL_SUMMARY.md`](./docs/AGENT_PROTOCOL_SUMMARY.md) | Generated concise navigation aid for protocol invariants and commands |
21
21
  | Agent Skill integration | [`docs/AGENT_SKILL.md`](./docs/AGENT_SKILL.md) | Generated portable, non-authoritative agent guidance and freshness contract |
22
+ | Engineering guide maintenance | [`docs/GUIDE_MAINTENANCE.md`](./docs/GUIDE_MAINTENANCE.md) | Full catalog review scope, policy boundaries, source map, and revalidation procedure |
22
23
  | CLI command reference | [`docs/CLI_REFERENCE.md`](./docs/CLI_REFERENCE.md) | Full syntax, options, and JSON examples for all commands |
23
24
  | Repository Index and Search | [`docs/REPOSITORY_INDEX.md`](./docs/REPOSITORY_INDEX.md) | Mandatory managed engine, indexed search contract, lifecycle, resource, security, and benchmark behavior |
24
25
  | Persistent CLI search transport | [`docs/PERSISTENT_SEARCH_TRANSPORT.md`](./docs/PERSISTENT_SEARCH_TRANSPORT.md) | CLI-only local IPC, host lifecycle, ownership, recovery, bounds, privacy, and direct API/MCP boundary |
@@ -41,6 +42,7 @@ integration and guide context. Use this map before editing documentation.
41
42
  | Provider extension architecture | [`docs/PROVIDER_ARCHITECTURE.md`](./docs/PROVIDER_ARCHITECTURE.md) | Provider-neutral architecture, invocation lifecycle, strict snapshots, cancellation, trust, and authority boundaries |
42
43
  | Provider extension reference | [`docs/PROVIDERS.md`](./docs/PROVIDERS.md) | Capability discovery, provider kinds, common contract, limits, errors, and maintainer checklist |
43
44
  | Security Review provider | [`docs/SECURITY_REVIEW.md`](./docs/SECURITY_REVIEW.md) | Bounded host-injected observation API, strict findings, timeout/cancellation, and non-authority boundary |
45
+ | Cloudflare security audit companion | [`docs/SECURITY_AUDIT_SKILL.md`](./docs/SECURITY_AUDIT_SKILL.md) | Pinned optional source-audit workflow, host setup, report validation, and ForgeLoop authority boundary |
44
46
  | Ripwire advisory adapter | [`docs/RIPWIRE_ADAPTER.md`](./docs/RIPWIRE_ADAPTER.md) | Ripwire-specific registration, process contract, JSON mapping, limits, and verification |
45
47
  | OpenSrc advisory adapter | [`docs/OPENSRC_ADAPTER.md`](./docs/OPENSRC_ADAPTER.md) | OpenSrc-specific registration, version qualification, cache containment, deterministic search, limits, and verification |
46
48
  | Agent Browser verification adapter | [`docs/AGENT_BROWSER_ADAPTER.md`](./docs/AGENT_BROWSER_ADAPTER.md) | Optional host-owned browser executable, bounded observation mapping, isolation, exact origins, screenshots, and trust boundary |
@@ -3,7 +3,7 @@ name: accessibility-eng
3
3
  language: en
4
4
  description: "Practical WCAG 2.2-oriented accessibility protocol for web, mobile, and desktop."
5
5
  version: "2026.09"
6
- last-reviewed: "2026-08-31"
6
+ last-reviewed: "2026-10-17"
7
7
  guide-id: accessibility
8
8
  completion-evidence:
9
9
  - keyboard-navigation
@@ -15,7 +15,7 @@ completion-evidence:
15
15
 
16
16
  > Accessibility instructions adapted from the [A11Y.md](https://github.com/fecarrico/A11Y.md) project (Felipe A. Carriço, MIT license) — a validation protocol and persistent context system for building accessible software from the very first line of code, informed by **WCAG 2.2** and **ISO 9241-171**. It can support evidence for applicable **ADA** or **EAA** obligations, but does not itself determine legal compliance.
17
17
  > **Related documents**: for visual/UX direction (palettes, typography, motion), see [`design-code-eng.md`](./design-code-eng.md). For automated testing tools (axe-core, Lighthouse, visual regression), see [`test-code-eng.md`](./test-code-eng.md). For code quality/structure, see [`clean-code-eng.md`](./clean-code-eng.md). For HTML-based video and motion, also see [HyperFrames](https://hyperframes.heygen.com). This file is the canonical reference for **accessibility rules** (WCAG, ARIA, keyboard, focus, screen readers) — it does not repeat the content of the others.
18
- > **Tooling policy**: identify the stack, the stage, and the applicable checks; prefer an already available equivalent that produces compatible evidence. Ask for authorization before installing a tool or changing the environment. If no safe equivalent exists, record the required check as blocked and never claim that it passed. Do not install merely optional resources.
18
+ > **Tooling policy**: identify the stack, the stage, and the applicable checks; prefer an already available equivalent that produces compatible evidence. Installation or environment changes require authority; reuse scoped authorization already given rather than asking again. If no safe equivalent exists, record the required check as blocked and never claim that it passed. Do not install merely optional resources.
19
19
 
20
20
  ## 0. Principle Zero: accessibility as a pre-condition
21
21
 
@@ -25,7 +25,7 @@ completion-evidence:
25
25
 
26
26
  ## 0.1. Compliance profiles
27
27
 
28
- This document's default implementation target is **Standard (AA)**. It supports WCAG-oriented implementation; it does not certify a product or establish automatic legal compliance. Certification and legal obligations depend on an assessment with defined scope, evidence, and the applicable jurisdiction. When generating or reviewing interface code, the agent **MUST ask** the user which profile to apply if not already specified:
28
+ This document's default implementation target is **Standard (AA)**. Preserve a stronger existing requirement. If no profile is specified, record AA as a reversible assumption and continue; profile selection alone is not a user-approval gate. Ask only when a genuine blocking obligation cannot be established from project evidence, following Loop Engineering's decision classification. This guide supports WCAG-oriented implementation; it does not certify a product or establish automatic legal compliance. Certification and legal obligations depend on an assessment with defined scope, evidence, and the applicable jurisdiction.
29
29
 
30
30
  | Profile | Target | Contrast (text / UI) | Min font† | Min target | Use case |
31
31
  | :--- | :--- | :--- | :--- | :--- | :--- |
@@ -67,14 +67,14 @@ To ensure technical integrity, any AI interacting with the project **MUST**:
67
67
 
68
68
  ### Perceivable
69
69
 
70
- - **Contrast (SC 1.4.3, 1.4.11):** text **MUST** have 4.5:1; UI components and meaningful graphics **MUST** have 3:1. Prioritize real **luminance difference** (light vs dark) beyond hue.
70
+ - **Contrast (SC 1.4.3, 1.4.6, 1.4.11):** at AA, normal text needs at least 4.5:1 and large-scale text at least 3:1; at AAA, those thresholds are 7:1 and 4.5:1. Use WCAG's large-scale definition and applicable exceptions, not an arbitrary heading label. Required non-text component/state and graphic contrast is 3:1 where SC 1.4.11 applies. Do not round a failing ratio up. See the [W3C contrast explanation](https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum.html); prioritize luminance difference beyond hue.
71
71
  - **Alt text (SC 1.1.1):** informative images **MUST** have a functional description in `alt`; decorative images use `alt=""` or `aria-hidden="true"`.
72
72
  - **Channels beyond color (SC 1.4.1):** **MUST NOT** convey state, action, response, or information with color alone. Choose the additional channel appropriate to the meaning — visible text, icon, pattern, or programmatic semantics — without imposing the same visual redundancy in every case.
73
73
  - **Visual patterns:** when differentiation in charts or dashboards depends on color, patterns, labels, textures, or distinct line styles **MUST** enable users to distinguish series without color.
74
74
 
75
75
  ### Operable
76
76
 
77
- - **Keyboard (SC 2.1.1):** all functionality **MUST** be operable without a mouse. Where the function depends on the path of movement rather than only its endpoints, document why the WCAG exception applies and provide a practical alternative when possible. Avoid purely pointer-based listeners without keyboard event equivalents (`onKeyDown`).
77
+ - **Keyboard (SC 2.1.1):** all functionality **MUST** be operable without a mouse. Prefer native controls and their built-in keyboard activation; do not add duplicate `onKeyDown` activation to a native button. Custom widgets need the complete applicable keyboard pattern. Where the function depends on the path of movement rather than only its endpoints, document why the WCAG exception applies and provide a practical alternative when possible.
78
78
  - **Focus (SC 2.4.7, 2.4.11):** focus **MUST** be visible, never entirely obscured by author content (e.g., sticky headers/footers), persistent, and never suppressed via CSS (`outline: none` without fallback is forbidden).
79
79
  - **SPA routing:** after client-side routing changes, focus **MUST** be managed and properly reset (e.g., sending focus to the top or an `h1`). Avoid lost focus on the screen.
80
80
  - **Focus order and lifecycle (SC 2.4.3):** the sequential keyboard path **MUST** preserve meaning and operability. Prefer alignment between DOM order, reading order, and visual order when divergence would create confusing or illogical navigation. Avoid positive `tabindex` as a ForgeLoop accessibility best practice; repair the document structure whenever practical. When content is inserted, removed, expanded, collapsed, replaced, or routed, define the next logical focus destination and do not leave focus on a removed or unavailable node.
@@ -118,7 +118,7 @@ These directives combine WCAG requirements where identified and this guide's erg
118
118
  When identifying an unmapped or highly complex component (e.g., charts, dynamic grids):
119
119
 
120
120
  1. **Identify:** look for a similar pattern in the [WAI-ARIA APG](https://www.w3.org/WAI/ARIA/apg/).
121
- 2. **Validate:** request human validation with a screen reader — the AI **MUST NOT** claim this test was performed, nor fabricate its results.
121
+ 2. **Validate:** test the pattern in the supported screen-reader/browser combinations when available. If human validation is required and unavailable, record the exact unverified combination and owner action; continue independent work. An AI **MUST NOT** claim an unperformed test or fabricate its results.
122
122
  3. **Document:** document the expected behavior (keyboard and announcements).
123
123
  4. **Scale:** record the resolved pattern in `A11Y-DECISIONS.md` so future components reuse it instead of re-deriving it.
124
124
 
@@ -3,7 +3,7 @@ name: clean-code-eng
3
3
  language: en
4
4
  description: "Practices for readable, observable, secure code operated by AI agents."
5
5
  version: "2026.09"
6
- last-reviewed: "2026-08-10"
6
+ last-reviewed: "2026-10-17"
7
7
  guide-id: clean
8
8
  ---
9
9
 
@@ -13,7 +13,7 @@ guide-id: clean
13
13
  >
14
14
  > **Related documents**: for language-specific testing frameworks and tools, see [`test-code-eng.md`](./test-code-eng.md). For security, see [`sec-code-eng.md`](./sec-code-eng.md), the canonical reference for secrets, authorization, cryptography, and sensitive-data redaction. For visual/UX guidelines, see [`design-code-eng.md`](./design-code-eng.md). For HTML-based video and motion, see [HyperFrames](https://hyperframes.heygen.com). This guide focuses on code quality, structure, and operation.
15
15
  >
16
- > **Tooling policy**: identify the stack, the stage, and the applicable checks; prefer an already available equivalent that produces compatible evidence. Ask for authorization before installing a tool or changing the environment. If no safe equivalent exists, record the required check as blocked and never claim that it passed. Do not install merely optional resources.
16
+ > **Tooling policy**: identify the stack, the stage, and the applicable checks; prefer an already available equivalent that produces compatible evidence. Installation or environment changes require authority; reuse scoped authorization already given rather than asking again. If no safe equivalent exists, record the required check as blocked and never claim that it passed. Do not install merely optional resources.
17
17
 
18
18
  ## Context
19
19
 
@@ -3,7 +3,7 @@ name: design-code-eng
3
3
  language: en
4
4
  description: "Visual direction, UX, motion, and perceived performance for premium digital experiences."
5
5
  version: "2026.09"
6
- last-reviewed: "2026-08-31"
6
+ last-reviewed: "2026-10-17"
7
7
  guide-id: design
8
8
  requires-gates:
9
9
  - design
@@ -13,25 +13,25 @@ completion-evidence:
13
13
 
14
14
  # Web Design Premium v2 — Practical Guidelines
15
15
 
16
- > This guide provides strong defaults, not a blind recipe. Use its values, palettes, and snippets as a verifiable starting point; depart from them only for an explicit user/product requirement or a documented exception that preserves hierarchy, accessibility, and performance. Do not invent values "by eye".
16
+ > This guide provides starting points for a coherent interface. Preserve the product's existing tokens, components, platform conventions, and brand before selecting a new palette or font. Numeric values, example layouts, aesthetic bans, and snippets below are contextual defaults, not universal compliance rules or approval gates. Record meaningful departures with a short rationale and validate hierarchy, accessibility, and performance.
17
17
  > **Related documents**: for the complete studio-level website production process, see [`premium-sites-studio-eng.md`](./premium-sites-studio-eng.md). For the quality/structure of the code that implements this design, see [`clean-code-eng.md`](./clean-code-eng.md). For accessibility/visual/E2E testing, see [`test-code-eng.md`](./test-code-eng.md). For form security, authentication, and client-side storage, see [`sec-code-eng.md`](./sec-code-eng.md). To translate visual direction into HTML video, see [HyperFrames](https://hyperframes.heygen.com). This file focuses exclusively on UI/UX/visuals — it does not repeat code, testing, or security rules.
18
18
  >
19
- > **Tooling policy**: identify the stack, the stage, and the applicable checks; prefer an already available equivalent that produces compatible evidence. Ask for authorization before installing a tool or changing the environment. If no safe equivalent exists, record the required check as blocked and never claim that it passed. Do not install merely optional resources.
19
+ > **Tooling policy**: identify the stack, the stage, and the applicable checks; prefer an already available equivalent that produces compatible evidence. Installation or environment changes require authority; reuse scoped authorization already given rather than asking again. If no safe equivalent exists, record the required check as blocked and never claim that it passed. Do not install merely optional resources.
20
20
 
21
21
  ## How to use this guide (strong default process)
22
22
 
23
23
  Adopt this order as the default when creating a page from scratch; document an exception when the product, platform, or user requires a different sequence:
24
24
 
25
- 1. **Choose 1 ready-made semantic palette** from the "Ready-made semantic palettes" section (do not mix palettes).
26
- 2. **Choose 1 ready-made typographic combination** from the "Typographic Combinations" section.
27
- 3. **Define the page's section list** using the "Premium Page Anatomy".
28
- 4. **Apply the exact grid and spacing** from the "Layout & Spacing" section.
29
- 5. **Apply components** (buttons, cards, nav) with the exact specs from the "Components" section.
30
- 6. **Add motion** only according to the snippets in the "Motion" section — never "creative" motion outside the standard.
25
+ 1. **Confirm semantic color roles** from the existing design system; use a sample palette when no system exists.
26
+ 2. **Confirm typography roles and language coverage**; use a sample combination when appropriate.
27
+ 3. **Define the section list from the content and user journey**; use the anatomy as a reference.
28
+ 4. **Apply a coherent grid and spacing scale** with responsive content checks.
29
+ 5. **Reuse components and their interaction states**; adapt sample specifications to the product.
30
+ 6. **Add purposeful motion** only when it helps the experience, with reduced-motion and static fallbacks.
31
31
  7. **Run the Anti-Slop Checklist** before considering it ready.
32
- 8. **Audit and polish the entire interface with Impeccable**: run `/impeccable audit` to identify quality issues and `/impeccable polish` to apply improvements. Evaluate the complete interface, not only one component, preserve the existing design system, and repeat the audit after the changes.
32
+ 8. **Audit and polish the affected experience** with the available project tools and direct browser/device inspection. Impeccable is an optional aid when installed and relevant; its availability is not a completion gate. Preserve the design system and recheck the changed states.
33
33
 
34
- Do not skip steps 1 and 2 without a documented exception. The biggest cause of an "amateur" result is mixing random palettes/fonts or using framework defaults (e.g., Bootstrap blue, Inter everywhere, generic shadow `box-shadow: 0 0 10px rgba(0,0,0,0.1)`).
34
+ Keep color and type decisions intentional. A familiar font, framework default, or repeated component is not a defect by itself; assess its fit, readability, hierarchy, and consistency in the actual interface.
35
35
 
36
36
  > **This guide covers 3 contexts.** For web sites/products (desktop and mobile), follow the flow above normally. For **native mobile apps** (iOS/Android), go directly to the "Premium Mobile Apps" section. For **native desktop apps** (Windows/macOS), go to "Premium Desktop Apps". In the latter two cases, this guide's palettes and typography still serve as tone references, but platform guidelines (HIG, Material Design, Fluent) take priority over the generic values defined here.
37
37
 
@@ -227,7 +227,7 @@ When the output is a video, trailer, product demo, or motion graphic rendered fr
227
227
  - Prefer deterministic, frame-controllable animation with a paused/seekable timeline so preview, tests, and rendering reproduce the same result.
228
228
  - Keep text large enough for the output format, maintain AA contrast and safe areas, and do not make meaning depend on audio or motion.
229
229
  - Respect `prefers-reduced-motion` in interactive previews and provide a static or reduced-motion alternative when appropriate.
230
- - Start with the [official quickstart](https://hyperframes.heygen.com/quickstart) and use `npx hyperframes preview`, `npx hyperframes lint`, and `npx hyperframes render` in the quality loop when the project uses the CLI.
230
+ - Start with the [official quickstart](https://hyperframes.heygen.com/quickstart). Use the project's pinned, already-installed CLI for `preview`, `lint`, `check`, and `render`, verifying the installed command help. Do not use an install-capable launcher merely to obtain a missing verifier; installation authority remains separate.
231
231
 
232
232
  Motion rules:
233
233
 
@@ -594,7 +594,7 @@ For React-specific supplemental diagnostics after implementation, including desi
594
594
  - [ ] Where the platform exposes contrast/transparency preferences, including `prefers-contrast` or `forced-colors` when applicable, the opaque/less-transparent variant works; without a reliable media query, there is an equivalent in-product control.
595
595
  - [ ] No item from the "Blacklist" is present.
596
596
  - [ ] Tested at 320 CSS px reflow and desktop (1440px).
597
- - [ ] Ran `/impeccable audit` and `/impeccable polish` across the entire interface and addressed applicable findings.
597
+ - [ ] Reviewed the affected interface and states with available tools and browser/device evidence; optional Impeccable findings were addressed when that tool was used.
598
598
 
599
599
  ---
600
600
 
@@ -3,7 +3,7 @@ name: documentation-quality-eng
3
3
  language: en
4
4
  description: "Quality standards for accurate, task-oriented, maintainable, accessible, and verifiable technical documentation."
5
5
  version: "2026.09"
6
- last-reviewed: "2026-08-17"
6
+ last-reviewed: "2026-10-17"
7
7
  guide-id: documentation
8
8
  ---
9
9
 
@@ -11,7 +11,7 @@ guide-id: documentation
11
11
 
12
12
  > **Related documents**: use [`clean-code-eng.md`](./clean-code-eng.md) when software behavior or code structure changes; [`test-code-eng.md`](./test-code-eng.md) for executable examples and verification strategy; [`sec-code-eng.md`](./sec-code-eng.md) for secrets, authentication, authorization, privacy, and sensitive examples; [`accessibility-eng.md`](./accessibility-eng.md) when a published documentation surface has additional accessibility requirements. This guide owns documentation architecture, factual quality, freshness, maintainability, and reader usability.
13
13
  >
14
- > **Tooling policy**: identify the documentation surface, canonical sources, and existing project checks first. Prefer already available project-native tools. Ask for authorization before installing tooling or changing the environment. If a required check cannot be executed, record it as blocked or `NOT_VERIFIED`; never claim it passed.
14
+ > **Tooling policy**: identify the documentation surface, canonical sources, and existing project checks first. Prefer already available project-native tools. Installation or environment changes require authority; reuse scoped authorization already given rather than asking again. If a required check cannot be executed, record it as blocked or `NOT_VERIFIED`; never claim it passed.
15
15
 
16
16
  ## Context
17
17
 
@@ -128,6 +128,14 @@ Update affected documentation in the same task when the change is required for c
128
128
 
129
129
  ## Freshness and timeless wording
130
130
 
131
+ When reviewing engineering guides, compare the full catalog with its registry,
132
+ activation implementation, and metadata. Separate implemented capability from
133
+ proposed integration, sample check names from required evidence identifiers,
134
+ and contextual defaults from protocol or user-approval gates. A named tool
135
+ does not become mandatory merely because an example uses it. Record the
136
+ review's scope and unavailable consumer/platform checks; a fresh review date
137
+ does not certify every referenced API or framework.
138
+
131
139
  Avoid time-sensitive words such as `new`, `currently`, `latest`, `now`, or `soon` in evergreen technical documentation when they will age without adding information.
132
140
 
133
141
  Use explicit versions or dates when history or compatibility requires them.
@@ -3,7 +3,7 @@ name: flutter-development-eng
3
3
  language: en
4
4
  description: "Specialist guide for architecture, implementation, testing, performance, accessibility, platform integration, and release of production Flutter applications."
5
5
  version: "2026.09"
6
- last-reviewed: "2026-10-13"
6
+ last-reviewed: "2026-10-17"
7
7
  guide-id: flutter
8
8
  ---
9
9
  # Flutter Development Engineering Guide
@@ -1922,39 +1922,13 @@ A Flutter task is complete only when the applicable items are satisfied.
1922
1922
 
1923
1923
  ## 53. ForgeLoop guide routing integration
1924
1924
 
1925
- This file is designed to live at:
1925
+ The `flutter` guide is registered in `src/config/guides.json` and already
1926
+ participates in the canonical router. The bounded project detector confirms
1927
+ Flutter from a parsed `pubspec.yaml` with an actual Flutter SDK dependency,
1928
+ then matches the affected claims to that project root. It does not execute
1929
+ Flutter, Dart, package scripts, generators, or SDK discovery during routing.
1926
1930
 
1927
- ```text
1928
- ENG/flutter-development-eng.md
1929
- ```
1930
-
1931
- To make the current ForgeLoop `GUIDE_ROUTER.md` select it automatically, the repository should add a canonical catalog entry similar to:
1932
-
1933
- ```markdown
1934
- | `flutter` | [Flutter development](ENG/flutter-development-eng.md) | Architecture, UI, state, platform integration, testing, performance, and release for Flutter applications |
1935
- ```
1936
-
1937
- Add a domain rule similar to:
1938
-
1939
- ```markdown
1940
- ### `flutter` — Flutter application engineering
1941
-
1942
- Activate when: designing, implementing, testing, debugging, profiling, integrating, or releasing a Flutter or Dart application where Flutter is an actual project stack.
1943
-
1944
- Do not activate merely because: documentation mentions Flutter, a generated Flutter example exists, or a dependency name contains "flutter" without the affected application being a Flutter project.
1945
-
1946
- Usually combine with: `clean` and `test`; add `design` and `accessibility` for user-facing UI, `security` for networking/auth/data/plugins/release, and `performance` for rendering/startup/memory/network critical paths.
1947
-
1948
- rg -n '^## |architecture|ViewModel|state|widget|layout|navigation|deep link|network|serialization|isolate|platform|plugin|FFI|web|accessibility|performance|test|release|Definition of Done' ENG/flutter-development-eng.md
1949
-
1950
- Expected evidence: Flutter/Dart version awareness, architecture-consistent implementation, analyzer/test evidence, accessibility/adaptive checks for UI, platform-boundary validation where changed, and an affected-target build when feasible.
1951
- ```
1952
-
1953
- The deterministic router may also need an explicit stack signal or routing rule if the current schema cannot identify Flutter from verified project manifests. Do not make natural-language string matching the sole proof that a project is Flutter. A strong deterministic signal is the presence and parsed content of `pubspec.yaml` with an actual Flutter SDK dependency, combined with affected surfaces/platform signals.
1954
-
1955
- ## 54. Suggested deterministic Flutter stack evidence
1956
-
1957
- A repository can be classified as Flutter when evidence such as the following is confirmed:
1931
+ The primary manifest signal is:
1958
1932
 
1959
1933
  ```yaml
1960
1934
  dependencies:
@@ -1962,32 +1936,37 @@ dependencies:
1962
1936
  sdk: flutter
1963
1937
  ```
1964
1938
 
1965
- Useful supporting signals:
1966
-
1967
- - `.metadata` identifies a Flutter project;
1968
- - Flutter platform runners exist and are part of build/release configuration;
1969
- - `flutter_test` is present under development dependencies;
1970
- - CI invokes Flutter tooling.
1971
-
1972
- Do not classify as Flutter only because a lockfile contains a transitive package with "flutter" in its name.
1973
-
1974
- ## 55. Suggested completion evidence identifiers
1975
-
1976
- If ForgeLoop's evidence schema is extended for Flutter, useful semantic identifiers may include:
1977
-
1978
- ```text
1979
- flutter-format
1980
- flutter-analyze
1981
- flutter-unit-widget-tests
1982
- flutter-integration-tests
1983
- flutter-target-build
1984
- flutter-accessibility-validation
1985
- flutter-performance-profile
1986
- flutter-native-integration
1987
- flutter-deep-link-validation
1988
- ```
1989
-
1990
- Do not add identifiers to ForgeLoop protocol schemas without updating validators, tests, documentation, and compatibility surfaces together.
1939
+ Pure Dart packages, platform runner directories, `.metadata`, `flutter_test`,
1940
+ CI tooling, generated examples, and transitive package names do not substitute
1941
+ for that primary Flutter identity. Preserve nested project ownership.
1942
+
1943
+ For implementation, use the route returned by the current runtime and combine
1944
+ it with the guides selected for the actual surfaces and risks. UI may require
1945
+ design/accessibility checks; trust boundaries require security checks;
1946
+ performance work requires measured evidence. Do not manually invent a routed
1947
+ guide set or duplicate routing rules in a host integration.
1948
+
1949
+ ## 54. Discovery versus verification
1950
+
1951
+ A confirmed manifest establishes project identity, not analyzer success,
1952
+ compilation, device support, accessibility, or release readiness. Inspect the
1953
+ repository's pinned SDK, dependency graph, platform configuration, and actual
1954
+ commands after routing. Collect those outcomes separately through the normal
1955
+ verification flow; missing SDKs, devices, signing, and platform checks remain
1956
+ explicitly unverified.
1957
+
1958
+ ## 55. Task-specific verification checks
1959
+
1960
+ Choose check IDs that explain the observation, such as `flutter-analyze`,
1961
+ `flutter-unit-widget-tests`, `flutter-target-build`, or
1962
+ `flutter-deep-link-validation`, and bind each check to a requirement from the
1963
+ active contract or selected guide metadata. These are example check names,
1964
+ not new protocol enums or automatic completion requirements.
1965
+
1966
+ This guide's frontmatter does not declare an extra Flutter-specific gate or
1967
+ completion-evidence ID. Required gates and evidence come from the actual
1968
+ contract, route, metadata, and canonical runtime. Record executed commands
1969
+ with `run-check`; a formatted check name or manifest match is not evidence.
1991
1970
 
1992
1971
  ## 56. Official documentation map
1993
1972
 
@@ -3,7 +3,7 @@ name: games-code-design-web-eng
3
3
  language: en
4
4
  description: "Architecture, design, testing, and operation of 2D, 3D, and procedural web games."
5
5
  version: "2026.09"
6
- last-reviewed: "2026-08-10"
6
+ last-reviewed: "2026-10-17"
7
7
  guide-id: games
8
8
  requires-gates:
9
9
  - simulation
@@ -18,7 +18,7 @@ completion-evidence:
18
18
  >
19
19
  > **Related documents**: for general code structure, naming, dependency injection, and debugging, see [`clean-code-eng.md`](./clean-code-eng.md). For test strategy and tools such as Vitest and Playwright, see [`test-code-eng.md`](./test-code-eng.md). For browser security, CSP, dependency scanning, and multiplayer threat models, see [`sec-code-eng.md`](./sec-code-eng.md). For budgets, profiling, WebAssembly, PWA, CDN, and device performance, see [`perf-code-eng.md`](./perf-code-eng.md). For visual direction, UX, motion, and responsive design, see [`design-code-eng.md`](./design-code-eng.md). For WCAG 2.2-oriented implementation, assistive technology, and manual testing, see [`accessibility-eng.md`](./accessibility-eng.md). For HTML-based gameplay trailers, devlogs, and demos, see [HyperFrames](https://hyperframes.heygen.com). This guide focuses on game architecture and delivery; it does not replace those documents.
20
20
  >
21
- > **Tooling policy**: identify the stack, the stage, and the applicable checks; prefer an already available equivalent that produces compatible evidence. Ask for authorization before installing a tool or changing the environment. If no safe equivalent exists, record the required check as blocked and never claim that it passed. Do not install merely optional resources.
21
+ > **Tooling policy**: identify the stack, the stage, and the applicable checks; prefer an already available equivalent that produces compatible evidence. Installation or environment changes require authority; reuse scoped authorization already given rather than asking again. If no safe equivalent exists, record the required check as blocked and never claim that it passed. Do not install merely optional resources.
22
22
 
23
23
  ## How to use this guide (mandatory process)
24
24
 
@@ -3,7 +3,7 @@ name: perf-code-eng
3
3
  language: en
4
4
  description: "Performance measurement, diagnosis, and improvement for web, mobile, desktop, APIs, and data."
5
5
  version: "2026.09"
6
- last-reviewed: "2026-08-10"
6
+ last-reviewed: "2026-10-17"
7
7
  guide-id: performance
8
8
  completion-evidence:
9
9
  - performance-validation
@@ -13,7 +13,7 @@ completion-evidence:
13
13
 
14
14
  > Practical instructions for designing, measuring, diagnosing, and improving performance in web, mobile (iOS/Android), desktop (Windows/macOS), APIs, infrastructure, and databases. Use this document to guide AI agents and developers. Performance must be measured in real scenarios before and after the change — do not optimize based on assumptions.
15
15
  > **Related documents**: for code structure and readability, see [`clean-code-eng.md`](./clean-code-eng.md). For functional, integration, and E2E testing, see [`test-code-eng.md`](./test-code-eng.md). For security and cache, secrets, and infrastructure trade-offs, see [`sec-code-eng.md`](./sec-code-eng.md). For perceived performance, UX, motion, and responsive design, see [`design-code-eng.md`](./design-code-eng.md). For HTML video preview and rendering performance, see [HyperFrames](https://hyperframes.heygen.com). This file is the canonical performance reference.
16
- > **Tooling policy**: identify the stack, the stage, and the applicable checks; prefer an already available equivalent that produces compatible evidence. Ask for authorization before installing a tool or changing the environment. If no safe equivalent exists, record the required check as blocked and never claim that it passed. Do not install merely optional resources.
16
+ > **Tooling policy**: identify the stack, the stage, and the applicable checks; prefer an already available equivalent that produces compatible evidence. Installation or environment changes require authority; reuse scoped authorization already given rather than asking again. If no safe equivalent exists, record the required check as blocked and never claim that it passed. Do not install merely optional resources.
17
17
 
18
18
  ## General principles
19
19
 
@@ -22,7 +22,7 @@ completion-evidence:
22
22
  - **Optimize the critical path**: prioritize what blocks the first render, the first interaction, the most-used operation, or the flow that has the greatest impact on the user.
23
23
  - **Distribution metrics**: track median (p50), p75, p95, and p99. A healthy average can hide a minority of users with a very poor experience.
24
24
  - **Perceived performance matters**: immediate feedback, skeleton/loading state, streaming, and progressive updates can improve the experience without masking a slow operation.
25
- - **Do not block the main thread**: CPU work, I/O, parsing, serialization, and heavy processing should be asynchronous, parallelized, or moved to a worker/background when possible.
25
+ - **Do not block the main thread**: use asynchronous APIs for I/O and bound parsing, serialization, and CPU-heavy work. An `async` function or Promise does not move CPU work off the event loop. Measure whether partitioning work or a bounded worker/background pool improves responsiveness, including transfer and scheduling cost. See [Node.js event-loop guidance](https://nodejs.org/en/learn/asynchronous-work/dont-block-the-event-loop).
26
26
  - **Less work is better than faster work**: eliminate unnecessary calls, renders, queries, allocations, payloads, and initializations before micro-optimizing an algorithm.
27
27
  - **Avoid speculative optimization**: do not add cache, pooling, memoization, or complexity without evidence of a bottleneck and without measuring invalidation, memory, and maintenance cost.
28
28
  - **Control concurrency and resources**: use timeouts, queue limits, backpressure, quotas, circuit breakers, and cancellation to prevent slowness from becoming resource exhaustion.
@@ -3,7 +3,7 @@ name: php-development-eng
3
3
  language: en
4
4
  description: "Specialist guidance for production PHP applications, Composer packages, web services, and command-line workers."
5
5
  version: "2026.09"
6
- last-reviewed: "2026-10-13"
6
+ last-reviewed: "2026-10-17"
7
7
  guide-id: php
8
8
  requires-gates:
9
9
  - threat-boundary
@@ -51,7 +51,7 @@ do not edit generated/vendor content as if it were application source.
51
51
  PHP extensions deserve special care: an extension or C-extension package may
52
52
  compose with the C specialist, but does not imply PHP implementation. Keep
53
53
  Composer-less source fallback limited to owned files with an executable
54
- `<?php` opening tag and do not promote generated/vendor trees.
54
+ `<?php` or `<?=` opening tag and do not promote generated/vendor trees.
55
55
 
56
56
  ## Architecture and language semantics
57
57
 
@@ -3,7 +3,7 @@ name: premium-sites-studio-eng
3
3
  language: en
4
4
  description: "Complete process for building premium websites at major design-studio quality."
5
5
  version: "2026.09"
6
- last-reviewed: "2026-08-10"
6
+ last-reviewed: "2026-10-17"
7
7
  guide-id: premium
8
8
  requires-gates:
9
9
  - design
@@ -19,7 +19,7 @@ completion-evidence:
19
19
 
20
20
  > This guide defines the production process. For detailed visual rules, also use [`design-code-eng.md`](./design-code-eng.md). For accessibility, code quality, testing, security, and performance, consult the related documents at the end. A high-end website is not only a beautiful interface: it is a coherent, useful, fast, accessible, measurable, and maintainable experience.
21
21
  >
22
- > **Tooling policy**: identify the stack, the stage, and the applicable checks; prefer an already available equivalent that produces compatible evidence. Ask for authorization before installing a tool or changing the environment. If no safe equivalent exists, record the required check as blocked and never claim that it passed. Do not install merely optional resources.
22
+ > **Tooling policy**: identify the stack, the stage, and the applicable checks; prefer an already available equivalent that produces compatible evidence. Installation or environment changes require authority; reuse scoped authorization already given rather than asking again. If no safe equivalent exists, record the required check as blocked and never claim that it passed. Do not install merely optional resources.
23
23
 
24
24
  ## 1. Quality bar
25
25
 
@@ -49,6 +49,13 @@ Follow the gates in order. Within each gate, use the canonical [Loop Engineering
49
49
 
50
50
  Each gate must have a verifiable output. If a decision remains ambiguous, record the hypothesis, risk, owner, and next test; do not hide uncertainty behind aesthetics.
51
51
 
52
+ These production stages do not create extra ForgeLoop lifecycle gates or
53
+ mandatory user approvals. In autonomous work, resolve reversible brief,
54
+ layout, and direction choices as recorded assumptions and continue. Ask only
55
+ for a genuine blocking decision under Loop Engineering. Client approval and
56
+ publication authority remain required when the actual engagement or requested
57
+ external action requires them; a generic checklist cannot invent that boundary.
58
+
52
59
  ## 3. Gate 1 — Brief, strategy, and success
53
60
 
54
61
  Before choosing colors or components, produce a short brief:
@@ -3,7 +3,7 @@ name: python-development-eng
3
3
  language: en
4
4
  description: "Specialist guidance for production Python applications, libraries, command-line tools, data pipelines, and native extensions."
5
5
  version: "2026.09"
6
- last-reviewed: "2026-10-13"
6
+ last-reviewed: "2026-10-17"
7
7
  guide-id: python
8
8
  requires-gates:
9
9
  - threat-boundary
@@ -22,6 +22,12 @@ actual project from owned `.py` files and its packaging/build metadata, such as
22
22
  Do not infer Python project identity from documentation, editor settings,
23
23
  Jupyter output, a Python executable used only by CI, or a transitive package.
24
24
 
25
+ This is reference guidance in ForgeLoop's catalog. The current structural
26
+ project-evidence schema and router do not automatically detect Python or
27
+ select this specialist from Python manifests. Load it explicitly when Python
28
+ work is in scope, and inspect the canonical route for the selected guides;
29
+ the presence of this document is not automatic-routing support.
30
+
25
31
  This guide is based on the official Python 3.15.0 documentation. Python 3.15.0
26
32
  was released as a stable release on 2026-10-09. Its release highlights include
27
33
  the `sentinel` and `frozendict` built-ins, UTF-8 as the default encoding,
@@ -3,7 +3,7 @@ name: rust-development-eng
3
3
  language: en
4
4
  description: "Specialist guidance for architecture, implementation, testing, security, performance, and release of production Rust applications, services, libraries, and workers."
5
5
  version: "2026.09"
6
- last-reviewed: "2026-10-13"
6
+ last-reviewed: "2026-10-17"
7
7
  guide-id: rust
8
8
  requires-gates:
9
9
  - threat-boundary
@@ -113,37 +113,27 @@ does not change a project's declared MSRV, toolchain, or edition.
113
113
 
114
114
  ### Rust 1.99.0 release review
115
115
 
116
- The [Rust 1.99.0 release notes](https://releases.rs/docs/1.99.0/) report a
117
- stable release on 2026-10-01. Apply these changes only when the affected
118
- project's toolchain and compatibility policy permit them:
119
-
120
- - **Language and unsafe code:** C-variadic function definitions are stable;
121
- naked C-variadic functions remain behind the nightly
122
- `c_variadic_naked_functions` feature. The new
123
- `raw_borrows_via_references` lint is allow-by-default, so it does not replace
124
- an explicit lint policy. Review unsafe code that relies on `UnsafeCell`
125
- access or reference-to-raw-borrow behavior alongside the release's adjusted
126
- `invalid_reference_casting` lint; do not infer that these changes relax
127
- aliasing or safety invariants.
128
- - **Cargo and workspaces:** Cargo adds a `debug` profile that is currently
129
- identical to `dev` and prepares for a possible later profile transition.
130
- On edition 2024 or later, a workspace member can override an inherited
131
- dependency's `default-features`; on earlier editions,
132
- `default-features = false` remains ignored with a warning. Check the edition
133
- before relying on the override.
134
- - **Library APIs and targets:** the release stabilizes APIs including
135
- `Vec::into_parts`/`Vec::from_parts`, `Box::into_non_null`/`Box::from_non_null`,
136
- `String::from_utf8_lossy_owned`, `VecDeque::retain_back`, and
137
- `std::fs::set_times`. `riscv64-unknown-linux-musl` is promoted to Tier 2
138
- with host tools. Check each API's stabilization version and target support
139
- against the package MSRV and supported deployment matrix before adoption.
140
- - **Compatibility checks:** legacy integral modules such as `std::i32` are
141
- fully deprecated, `no_mangle_generic_items` is a hard error, and the safety
142
- invariants of `Pin::new_unchecked` have changed slightly. Rust 1.99 also
143
- disables Cargo incremental compilation by default in CI and expands the
144
- non-local macro semicolon warning to macros from dependencies. Review these
145
- changes when diagnosing new warnings, build-time shifts, or compatibility
146
- failures.
116
+ The [official Rust 1.99.0 announcement](https://blog.rust-lang.org/2026/10/01/Rust-1.99.0/)
117
+ and its linked standard-library documentation describe the stable release on
118
+ 2026-10-01. Review changes against the project's toolchain and compatibility
119
+ policy:
120
+
121
+ - **FFI:** C-ABI variadic definitions are stable. Distinguish those from naked
122
+ variadic functions with non-C ABIs, which require inline assembly. Preserve
123
+ ABI, argument-type, and caller-safety invariants.
124
+ - **Raw-pointer layout:** `Layout::for_value_raw`, `mem::size_of_val_raw`, and
125
+ `mem::align_of_val_raw` are stabilized; their availability does not remove
126
+ each API's unsafe preconditions.
127
+ - **Ownership:** the standard-library guidance discourages leaking a `Box`
128
+ and later reconstructing it for deallocation. Use deliberate ownership
129
+ transfer through `Box::into_raw` or `Box::into_non_null` when appropriate.
130
+ - **Library compatibility:** examples of stabilized APIs include
131
+ `Vec::into_parts`/`Vec::from_parts`, `Box::from_non_null`, and
132
+ `VecDeque::retain_back`. Check exact stabilization versions against MSRV.
133
+
134
+ Consult the official detailed release notes for Cargo, target, compiler, and
135
+ lint changes before changing profiles, features, flags, or supported targets.
136
+ Do not infer such changes from a third-party release summary.
147
137
 
148
138
  These release notes are a version-specific review aid, not a reason to raise
149
139
  MSRV or change edition, lint levels, profiles, or targets without an explicit
@@ -3,7 +3,7 @@ name: sec-code-eng
3
3
  language: en
4
4
  description: "Verifiable security guidance for web, mobile, desktop, APIs, and the software supply chain."
5
5
  version: "2026.09"
6
- last-reviewed: "2026-08-10"
6
+ last-reviewed: "2026-10-17"
7
7
  guide-id: security
8
8
  requires-gates:
9
9
  - threat-boundary
@@ -27,11 +27,27 @@ reference; secrets, authorization, cryptography, and OWASP rules live here,
27
27
  not in the other files.
28
28
 
29
29
  **Tooling policy**: identify the stack, stage, and applicable checks; prefer an
30
- already-available equivalent that produces compatible evidence. Ask for
31
- authorization before installing a tool or changing the environment. If no
30
+ already-available equivalent that produces compatible evidence. Installation or environment changes require authority; reuse scoped
31
+ authorization already given rather than asking again. If no
32
32
  safe equivalent exists, record the required check as blocked and never claim
33
33
  it passed. Do not install merely optional resources.
34
34
 
35
+ ## Optional source security audit workflow
36
+
37
+ For security questions and focused vulnerability investigation, the optional
38
+ Cloudflare [security-audit skill](https://github.com/cloudflare/security-audit-skill)
39
+ provides source-first guidance. ForgeLoop ships a pinned copy under
40
+ `skills/security-audit/` in its package and source checkout. See the
41
+ [setup and authority boundaries](https://github.com/cassiomc1/forgeloop/blob/b9a16e9f665116306e9fca3b905b1f0fe2abd633/docs/SECURITY_AUDIT_SKILL.md)
42
+ before enabling host discovery or requesting a full audit.
43
+
44
+ Use guidance mode for focused work. Reserve the complete six-phase audit for
45
+ an explicit audit or report request; it requires independent verification and
46
+ the upstream execution isolation controls. Keep `confirmed`,
47
+ `needs_validation`, and `rejected` distinct, and disclose missing capabilities.
48
+ The companion neither installs itself into target projects nor replaces this
49
+ guide's gates, negative tests, canonical evidence, or completion validation.
50
+
35
51
  ## General principles (valid for any platform)
36
52
 
37
53
  - **Secure by design**: think about security during the design phase, not as a "review" at the end. Perform threat modeling for sensitive features (login, payment, file upload).