@cassiomc1/forgeloop 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/.cursor/rules/project-loop.mdc +3 -2
  2. package/.github/copilot-instructions.md +1 -0
  3. package/AGENTS.md +2 -1
  4. package/CLAUDE.md +1 -0
  5. package/DOCS_INDEX.md +36 -0
  6. package/ENG/design-code-eng.md +68 -2
  7. package/ENG/documentation-quality-eng.md +400 -0
  8. package/ENG/taste-frontend-eng.md +6 -3
  9. package/EXECUTION_STATE.md +23 -13
  10. package/GUIDE_ROUTER.md +23 -8
  11. package/LOOP_ENGINEERING.md +77 -12
  12. package/PROTOCOL_INTEGRATION.md +9 -6
  13. package/README.md +86 -39
  14. package/docs/ARTIFACT_REFERENCE.md +442 -0
  15. package/docs/CLI_REFERENCE.md +892 -0
  16. package/docs/CROSS_HARNESS_CONTINUITY.md +198 -0
  17. package/docs/DOCUMENTATION_GUIDE.md +161 -0
  18. package/docs/GETTING_STARTED.md +348 -0
  19. package/docs/RECIPES.md +250 -0
  20. package/docs/TROUBLESHOOTING.md +345 -0
  21. package/docs/assets/forgeloop-flow.svg +1 -1
  22. package/docs/forgeloop-flow.mmd +1 -1
  23. package/package.json +13 -2
  24. package/schemas/task-descriptor.schema.json +56 -0
  25. package/schemas/work-state.schema.json +18 -1
  26. package/scripts/CI_VALIDATORS.md +7 -0
  27. package/src/cli.js +280 -388
  28. package/src/commands/advance.js +5 -2
  29. package/src/commands/audit.js +11 -1
  30. package/src/commands/clear-continuity.js +5 -2
  31. package/src/commands/clear-state.js +5 -2
  32. package/src/commands/complete.js +9 -1
  33. package/src/commands/continuity.js +5 -2
  34. package/src/commands/inspect.js +10 -2
  35. package/src/commands/next.js +5 -2
  36. package/src/commands/preflight.js +9 -1
  37. package/src/commands/prepare-completion.js +5 -2
  38. package/src/commands/reconcile-continuity.js +5 -2
  39. package/src/commands/record-check.js +7 -1
  40. package/src/commands/record-continuity.js +21 -14
  41. package/src/commands/record-terminal-result.js +7 -1
  42. package/src/commands/route.js +22 -18
  43. package/src/commands/run-check.js +52 -44
  44. package/src/commands/status.js +18 -12
  45. package/src/commands/task-create.js +94 -0
  46. package/src/commands/task-list.js +48 -0
  47. package/src/commands/task-migrate.js +34 -0
  48. package/src/commands/task-scope.js +75 -0
  49. package/src/commands/task-show.js +81 -0
  50. package/src/commands/task-unlock.js +35 -0
  51. package/src/commands/validate-protocol.js +37 -20
  52. package/src/commands/validate-state.js +24 -18
  53. package/src/config/guides.json +42 -0
  54. package/src/core/activation.js +8 -4
  55. package/src/core/artifact-registry.js +166 -0
  56. package/src/core/audit.js +65 -12
  57. package/src/core/bundles.js +76 -50
  58. package/src/core/cli-command-definitions.js +611 -0
  59. package/src/core/cli-metadata.js +23 -0
  60. package/src/core/completion-artifacts.js +161 -74
  61. package/src/core/completion.js +134 -76
  62. package/src/core/continuity.js +20 -13
  63. package/src/core/contract.js +6 -3
  64. package/src/core/error-codes.js +197 -0
  65. package/src/core/events.js +19 -14
  66. package/src/core/execution.js +38 -6
  67. package/src/core/gate-artifact.js +12 -9
  68. package/src/core/gates.js +4 -2
  69. package/src/core/guide-metadata.js +7 -11
  70. package/src/core/guide-registry.js +29 -0
  71. package/src/core/inspect.js +7 -4
  72. package/src/core/native-adapters.js +6 -0
  73. package/src/core/phase.js +85 -33
  74. package/src/core/preflight-consistency.js +24 -14
  75. package/src/core/preflight-loaders.js +16 -11
  76. package/src/core/preflight.js +44 -25
  77. package/src/core/protocol.js +2 -11
  78. package/src/core/receipt.js +1 -1
  79. package/src/core/report.js +2 -2
  80. package/src/core/repository.js +46 -12
  81. package/src/core/resumability.js +6 -4
  82. package/src/core/route-artifact.js +9 -5
  83. package/src/core/router.js +11 -7
  84. package/src/core/schema-validation.js +1 -0
  85. package/src/core/task-command.js +41 -0
  86. package/src/core/task-context.js +126 -0
  87. package/src/core/task-descriptor.js +81 -0
  88. package/src/core/task-discovery.js +116 -0
  89. package/src/core/task-identity.js +76 -0
  90. package/src/core/task-lock.js +209 -0
  91. package/src/core/task-migration-validation.js +140 -0
  92. package/src/core/task-migration.js +361 -0
  93. package/src/core/task-paths.js +96 -0
  94. package/src/core/task-scope.js +179 -0
  95. package/src/core/templates.js +3 -9
  96. package/src/core/work-state.js +24 -13
@@ -17,11 +17,12 @@ Do not treat ForgeLoop as vendor-specific, optional, or to follow only "in spiri
17
17
  5. Make the minimum change, run specific checks, and run proportional regression checks.
18
18
  6. Diagnose failures before fixing them; do not repeat attempts without new evidence.
19
19
  7. Request authority for unrelated actions, installations, and publications. Do not install a missing verification tool merely to satisfy a check. For missing Qwen-MM-Plugins, follow `LOOP_ENGINEERING.md`.
20
- 8. After implementation begins, do not return a final result in `EXECUTING`: advance through `VERIFYING` structured evidence `REVIEWING` execution receipt validator-backed `COMPLETE`. If closure cannot be reached, report `BLOCKED` or `PARTIALLY VERIFIED`.
20
+ 8. Before creating or activating new lifecycle state: if `.forgeloop/work-state.json` exists, inspect the existing task, reconcile continuity when present, inspect the checkout, and run `forgeloop next`. A change of harness, model, provider, IDE, process, terminal, or session does not create a new task.
21
+ 9. After implementation begins, do not return a final result in `EXECUTING`: advance through `VERIFYING` → structured evidence → `REVIEWING` → execution receipt → validator-backed `COMPLETE`. If closure cannot be reached, report `BLOCKED` or `PARTIALLY VERIFIED`.
21
22
 
22
23
  After implementation work for the current task is complete, run `forgeloop next` before returning a final result. Follow the returned lifecycle action until ForgeLoop reaches a terminal state or an explicit blocker.
23
24
 
24
- 9. Report only demonstrated results and checks.
25
+ 10. Report only demonstrated results and checks.
25
26
 
26
27
  Do not stop for non-blocking missing product details. When a safe, reversible
27
28
  local default exists, record it as an agent assumption and follow the Blocking vs Non-Blocking Decisions policy in `LOOP_ENGINEERING.md`.
@@ -14,6 +14,7 @@ Use these instructions across the repository while preserving local rules.
14
14
  - Make the smallest coherent change; validate with specific and regression checks.
15
15
  - Diagnose causes before fixing failures; do not make unverified attempts.
16
16
  - Do not install software, publish, delete, or alter external state without authority. Do not install a missing verification tool merely to satisfy a check. For missing Qwen-MM-Plugins, follow `LOOP_ENGINEERING.md`.
17
+ - Before creating or activating new lifecycle state: if `.forgeloop/work-state.json` exists, inspect the existing task, reconcile continuity when present, inspect the checkout, and run `forgeloop next`. A change of harness, model, provider, IDE, process, terminal, or session does not create a new task.
17
18
  - After implementation begins, do not return a final result in `EXECUTING`: advance through `VERIFYING` → structured evidence → `REVIEWING` → execution receipt → validator-backed `COMPLETE`. If closure cannot be reached, report `BLOCKED` or `PARTIALLY VERIFIED`.
18
19
 
19
20
  After implementation work for the current task is complete, run `forgeloop next` before returning a final result. Follow the returned lifecycle action until ForgeLoop reaches a terminal state or an explicit blocker.
package/AGENTS.md CHANGED
@@ -12,7 +12,8 @@ Do not treat ForgeLoop as vendor-specific, optional, or to follow only "in spiri
12
12
  1. Make the smallest coherent change, run specific checks, and proportional regression checks.
13
13
  1. Diagnose failures before fixing; do not repeat attempts without new evidence.
14
14
  1. Do not install software, publish, delete, or migrate data without authority. Do not install a missing verification tool merely to satisfy a check. For missing Qwen-MM-Plugins, follow `LOOP_ENGINEERING.md`.
15
- 1. Before implementation, create/validate `.forgeloop/current-contract.json`, persist routing, satisfy gates, and require `forgeloop preflight` to return `READY`.
15
+ 1. Before creating or activating new lifecycle state: if `.forgeloop/work-state.json` exists, inspect the existing task, reconcile continuity when present, inspect the checkout, and run `forgeloop next`. A change of harness, model, provider, IDE, process, terminal, or session does not create a new task.
16
+ 1. Before implementation, create/validate the task contract (`contract.json`), persist routing, satisfy gates, and require `forgeloop preflight` to return `READY`.
16
17
  1. Before claiming `COMPLETE`, require `forgeloop complete` to return `VALID`; otherwise report completion as not protocol-verified.
17
18
  1. After implementation begins, do not return a final result in `EXECUTING`: advance through `VERIFYING` → structured evidence → `REVIEWING` → execution receipt → validator-backed `COMPLETE`. If closure cannot be reached, report `BLOCKED` or `PARTIALLY VERIFIED`.
18
19
  1. After implementation work for the current task is complete, run `forgeloop next` before returning a final result. Follow the returned lifecycle action until ForgeLoop reaches a terminal state or an explicit blocker.
package/CLAUDE.md CHANGED
@@ -14,6 +14,7 @@ When working in this repository:
14
14
  1. Make small changes, run specific checks, and run proportional regression checks.
15
15
  1. Investigate root causes before fixing failures; do not make unverified attempts.
16
16
  1. Request authority for unrelated installations, publications, deletions, or migrations. Do not install a missing verification tool merely to satisfy a check. For missing Qwen-MM-Plugins, follow `LOOP_ENGINEERING.md`.
17
+ 1. Before creating or activating new lifecycle state: if `.forgeloop/work-state.json` exists, inspect the existing task, reconcile continuity when present, inspect the checkout, and run `forgeloop next`. A change of harness, model, provider, IDE, process, terminal, or session does not create a new task.
17
18
  1. After implementation begins, do not return a final result in `EXECUTING`: advance through `VERIFYING` → structured evidence → `REVIEWING` → execution receipt → validator-backed `COMPLETE`. If closure cannot be reached, report `BLOCKED` or `PARTIALLY VERIFIED`.
18
19
  1. After implementation work for the current task is complete, run `forgeloop next` before returning a final result. Follow the returned lifecycle action until ForgeLoop reaches a terminal state or an explicit blocker.
19
20
  1. Report current evidence, limitations, and publication state without claiming checks that were not run.
package/DOCS_INDEX.md CHANGED
@@ -7,6 +7,13 @@ integration and guide context. Use this map before editing documentation.
7
7
 
8
8
  | Need | Canonical source | Boundary |
9
9
  | --- | --- | --- |
10
+ | Getting started tutorial | [`docs/GETTING_STARTED.md`](./docs/GETTING_STARTED.md) | First-time walkthrough from init to completion |
11
+ | Cross-harness continuity | [`docs/CROSS_HARNESS_CONTINUITY.md`](./docs/CROSS_HARNESS_CONTINUITY.md) | Operational handoff and multi-tool resumption |
12
+ | CLI command reference | [`docs/CLI_REFERENCE.md`](./docs/CLI_REFERENCE.md) | Full syntax, options, and JSON examples for all commands |
13
+ | Artifact and schema reference | [`docs/ARTIFACT_REFERENCE.md`](./docs/ARTIFACT_REFERENCE.md) | Purpose, mutability, and trust classifications of `.forgeloop/` |
14
+ | Troubleshooting and recovery | [`docs/TROUBLESHOOTING.md`](./docs/TROUBLESHOOTING.md) | Symptom-first recovery and stable error code reference |
15
+ | Operational recipes | [`docs/RECIPES.md`](./docs/RECIPES.md) | Short copy-paste recipes for daily workflows |
16
+ | Documentation guide | [`docs/DOCUMENTATION_GUIDE.md`](./docs/DOCUMENTATION_GUIDE.md) | Rules and checklist for modifying documentation |
10
17
  | Lifecycle, gates, planning, verification, and recovery | [`LOOP_ENGINEERING.md`](./LOOP_ENGINEERING.md) | Normative process for agents and developer workflows |
11
18
  | Capability levels, discovery, and degradation | [`PROTOCOL_INTEGRATION.md`](./PROTOCOL_INTEGRATION.md) | Vendor-neutral harness contract |
12
19
  | Durable project facts | [`PROJECT_PROFILE.md`](./PROJECT_PROFILE.md) | Target-specific facts only; no prompts or secrets |
@@ -17,6 +24,35 @@ integration and guide context. Use this map before editing documentation.
17
24
  | Guide content | [`ENG/`](./ENG/) | Context-specific, English-only operational guides |
18
25
  | Diagram | [`docs/forgeloop-flow.mmd`](./docs/forgeloop-flow.mmd) | Canonical Mermaid source; SVG is generated output |
19
26
 
27
+ ## Audience map
28
+
29
+ | I am a... | Start here |
30
+ | --- | --- |
31
+ | **First-time user or developer** | [`docs/GETTING_STARTED.md`](./docs/GETTING_STARTED.md) |
32
+ | **AI coding agent / harness** | [`AGENTS.md`](./AGENTS.md) → [`LOOP_ENGINEERING.md`](./LOOP_ENGINEERING.md) |
33
+ | **Harness integrator** | [`PROTOCOL_INTEGRATION.md`](./PROTOCOL_INTEGRATION.md) |
34
+ | **Resuming another tool / session** | [`docs/CROSS_HARNESS_CONTINUITY.md`](./docs/CROSS_HARNESS_CONTINUITY.md) |
35
+ | **Looking up CLI commands** | [`docs/CLI_REFERENCE.md`](./docs/CLI_REFERENCE.md) |
36
+ | **Inspecting `.forgeloop/` files** | [`docs/ARTIFACT_REFERENCE.md`](./docs/ARTIFACT_REFERENCE.md) |
37
+ | **Fixing a broken or stale state** | [`docs/TROUBLESHOOTING.md`](./docs/TROUBLESHOOTING.md) |
38
+ | **Looking for quick recipes** | [`docs/RECIPES.md`](./docs/RECIPES.md) |
39
+ | **Documentation contributor** | [`docs/DOCUMENTATION_GUIDE.md`](./docs/DOCUMENTATION_GUIDE.md) |
40
+ | **Protocol architect / maintainer** | [`LOOP_SYSTEM_DESIGN.md`](./LOOP_SYSTEM_DESIGN.md) + [`schemas/`](./schemas/) |
41
+ | **Security auditor** | [`THREAT_MODEL.md`](./THREAT_MODEL.md) |
42
+ | **Engineering guide author** | [`GUIDE_ROUTER.md`](./GUIDE_ROUTER.md) + [`ENG/`](./ENG/) |
43
+
44
+ ## Task map
45
+
46
+ - **Start my first task**: [`docs/GETTING_STARTED.md`](./docs/GETTING_STARTED.md)
47
+ - **Resume after switching tools**: [`docs/CROSS_HARNESS_CONTINUITY.md`](./docs/CROSS_HARNESS_CONTINUITY.md)
48
+ - **Check CLI options and syntax**: [`docs/CLI_REFERENCE.md`](./docs/CLI_REFERENCE.md)
49
+ - **Understand what `.forgeloop/` stores**: [`docs/ARTIFACT_REFERENCE.md`](./docs/ARTIFACT_REFERENCE.md)
50
+ - **Fix a blocked, stale, or invalid state**: [`docs/TROUBLESHOOTING.md`](./docs/TROUBLESHOOTING.md)
51
+ - **Find operational copy-paste commands**: [`docs/RECIPES.md`](./docs/RECIPES.md)
52
+ - **Read the normative protocol specification**: [`LOOP_ENGINEERING.md`](./LOOP_ENGINEERING.md)
53
+ - **Integrate a new AI environment**: [`PROTOCOL_INTEGRATION.md`](./PROTOCOL_INTEGRATION.md)
54
+ - **Edit documentation safely**: [`docs/DOCUMENTATION_GUIDE.md`](./docs/DOCUMENTATION_GUIDE.md)
55
+
20
56
  `README.md` is intentionally a catalog and quickstart. Do not copy the full
21
57
  process into adapters or README sections; link to the canonical source.
22
58
 
@@ -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-10"
6
+ last-reviewed: "2026-08-17"
7
7
  guide-id: design
8
8
  requires-gates:
9
9
  - design
@@ -307,12 +307,42 @@ Canvas, WebGL, SVG displacement, and Liquid Glass effects follow the **normative
307
307
  - For charts and data visualization, consult [TanStack Charts](https://github.com/TanStack/charts); preserve responsiveness, contrast, keyboard readability, and never rely on color alone to communicate series or states.
308
308
  - For subtle interaction sounds, consult [Cuelume](https://cuelume-site.pages.dev/); provide volume/mute controls and never rely on audio to communicate essential information.
309
309
 
310
+ ### Architecture and diagram design — Beautiful Mermaid
311
+
312
+ When a task benefits from a polished technical diagram — for example an
313
+ architecture flow, lifecycle, state machine, sequence, class, ER, or other
314
+ Mermaid-supported visualization — consider
315
+ [Beautiful Mermaid by Craft](https://agents.craft.do/mermaid) as an optional
316
+ design/rendering resource.
317
+
318
+ Use the live editor at
319
+ [agents.craft.do/mermaid/editor](https://agents.craft.do/mermaid/editor) to
320
+ preview and refine Mermaid source and, when appropriate, export a polished SVG.
321
+
322
+ Rules:
323
+
324
+ - Mermaid source remains the canonical editable artifact when the project
325
+ already uses Mermaid-as-source.
326
+ - Prefer improving diagram structure and semantics before styling.
327
+ - Preserve technical accuracy; visual polish must never remove meaningful
328
+ states, branches, trust boundaries, failure paths, or labels.
329
+ - Prefer local/versioned SVG assets for repository documentation rather than
330
+ hotlinking externally rendered images.
331
+ - Treat Beautiful Mermaid as optional tooling, not as an implementation,
332
+ verification, authority, or completion dependency.
333
+ - Do not install `beautiful-mermaid` merely to render a documentation asset
334
+ when the browser editor or an already available equivalent is sufficient.
335
+ - If automated rendering is explicitly required, evaluate the open-source
336
+ `beautiful-mermaid` library separately under the project's dependency and
337
+ authorization policies before adding it.
338
+
310
339
  ## External design-reference map
311
340
 
312
341
  Select references for a product problem; they do not override project tokens or semantics. Check every adoption for keyboard and focus access, contrast, reduced motion, touch behavior, bundle/runtime cost, and fallback behavior. Cursor, canvas, 3D, audio, and decorative motion are progressive enhancement only. Do not copy source or assets; check the license and current terms for each exact resource, and treat a catalog listing as no transfer of rights.
313
342
 
343
+ - **Technical diagrams and architecture flows**: for polished Mermaid-based architecture and workflow diagrams, use [Beautiful Mermaid by Craft](https://agents.craft.do/mermaid) when relevant; preserve canonical Mermaid source, local versioned SVG assets, and do not treat presentation tooling as a mandatory protocol gate or runtime dependency.
314
344
  - **Component source and interaction inspiration**: use [21st.dev](https://21st.dev/) to study components and interactions; inspect each source, dependency, community contribution, and premium-material term before adoption.
315
- - **Component and motion inspiration**: use [React Bits](https://reactbits.dev/) to study component and motion behavior; distinguish public/free material from React Bits Pro and inspect each source/dependency license.
345
+ - **React component and motion reference**: use [React Bits](https://reactbits.dev/) to discover animated React components and interaction patterns, and inspect the [React Bits source repository](https://github.com/DavidHDev/react-bits) before adopting code. Use it only when the target stack is React or when a deliberate, reviewed adaptation is appropriate. Prefer the smallest component or pattern that solves the product need; do not install or copy the entire library by default. Inspect the exact component source, transitive dependencies, license/usage terms, accessibility behavior, reduced-motion behavior, responsive behavior, and runtime cost before adoption. Adapt tokens, typography, spacing, states, semantics, and motion to the target project's design system instead of preserving React Bits defaults.
316
346
  - **Component inspiration**: use [Fancy Components](https://www.fancycomponents.dev/) to study component composition; verify its terms separately from Motion, Tailwind, shadcn, or other dependencies.
317
347
  - **Motion primitives**: use [Motion Primitives](https://motion-primitives.com/) to study discrete interaction patterns; distinguish documented open-source material from its Pro offering and verify component/dependency terms.
318
348
  - **Component and design-system research**: use [Component Gallery](https://component.gallery/) for comparison, not for license assumptions.
@@ -321,6 +351,41 @@ Select references for a product problem; they do not override project tokens or
321
351
  - **Typography discovery**: verify each [UNCUT](https://uncut.wtf/) font's author, license, weights, and hosting rights.
322
352
  - **Creative coding and WebGL**: [cables.gl](https://cables.gl/) requires a semantic fallback, pause/offscreen behavior, a performance budget, and asset/operator provenance.
323
353
 
354
+ ### React Bits — operational use for React interfaces
355
+
356
+ React Bits is an optional implementation/reference source for high-finish React interfaces. It is not a required ForgeLoop tool, protocol dependency, verification dependency, or design-system replacement.
357
+
358
+ Use it when:
359
+
360
+ - the target application uses React;
361
+ - a concrete interaction, text treatment, background, reveal, or UI component would materially improve the product experience;
362
+ - implementing the behavior from scratch would add unnecessary design or engineering cost;
363
+ - the effect fits the selected motion intensity and visual direction.
364
+
365
+ Do not use it when:
366
+
367
+ - the target is not React and adaptation would add more complexity than value;
368
+ - the component exists only as decoration without a product or communication purpose;
369
+ - the same result already exists in the target project's design system;
370
+ - the component violates the project's accessibility, performance, security, dependency, or browser-support constraints;
371
+ - a static or simpler CSS/HTML implementation communicates the same result more clearly.
372
+
373
+ Adoption workflow:
374
+
375
+ 1. **Define the need first.** Identify the concrete UI or communication problem before browsing components.
376
+ 2. **Confirm the target stack.** Verify React version, styling strategy, TypeScript/JavaScript choice, SSR/CSR boundary, and existing animation/runtime libraries.
377
+ 3. **Inspect the source.** Review the exact component in the [React Bits repository](https://github.com/DavidHDev/react-bits), not only the visual demo.
378
+ 4. **Check usage terms.** Verify the current license and any component-specific dependency or attribution requirements before copying or installing code.
379
+ 5. **Choose the smallest variant.** Prefer one component/pattern and the variant matching the project (JS/TS and CSS/Tailwind); do not add unrelated components.
380
+ 6. **Prefer local adaptation.** Adapt the component into the target project's component structure and semantic tokens rather than importing a visual identity wholesale.
381
+ 7. **Preserve semantics.** Text, controls, navigation, forms, focus states, errors, status information, and primary actions must remain semantic and usable without decorative motion.
382
+ 8. **Respect reduced motion.** Provide a static or substantially reduced alternative under `prefers-reduced-motion`; essential information must never depend on animation.
383
+ 9. **Bound runtime cost.** Lazy-load expensive effects when practical, pause continuous animation outside the viewport or on hidden pages, and avoid adding duplicate animation/runtime libraries without justification.
384
+ 10. **Verify the result.** Test keyboard/focus behavior, contrast, 320 CSS px reflow, touch behavior, reduced motion, console/runtime errors, and the project's performance budget.
385
+ 11. **Record provenance.** When code or a material implementation pattern is adopted, record React Bits as an external source in the task/project attribution or source record when applicable.
386
+
387
+ ForgeLoop runtime must not gain a dependency on React Bits as a result of this guidance. Any installation belongs to the target project and remains subject to normal authorization and dependency policy.
388
+
324
389
  ---
325
390
 
326
391
  ## UX, Accessibility, and Quality
@@ -514,3 +579,4 @@ Select references for a product problem; they do not override project tokens or
514
579
  - Rights: the gallery's images and works are distinct from external resources it merely indexes. Consult the [terms](https://liquidglassdesign.com/terms); do not rehost, redistribute, or directly use images or works commercially without permission. For each external prompt or code resource, verify its license, provenance, credits, compatibility, and maintenance individually before use; being indexed does not transfer rights.
515
580
  - Apple — Adopting Liquid Glass (official guidance for Apple platforms): https://developer.apple.com/documentation/TechnologyOverviews/adopting-liquid-glass
516
581
  - Liquid Glass React, SVG, and Studio (experimental implementations; assess license, compatibility, weight, and maintenance): https://github.com/rdev/liquid-glass-react | https://github.com/shuding/liquid-glass | https://github.com/iyinchao/liquid-glass-studio
582
+ - Beautiful Mermaid (technical diagram design and rendering): https://agents.craft.do/mermaid | https://agents.craft.do/mermaid/editor | https://github.com/lukilabs/beautiful-mermaid
@@ -0,0 +1,400 @@
1
+ ---
2
+ name: documentation-quality-eng
3
+ language: en
4
+ description: "Quality standards for accurate, task-oriented, maintainable, accessible, and verifiable technical documentation."
5
+ version: "2026.09"
6
+ last-reviewed: "2026-08-17"
7
+ guide-id: documentation
8
+ ---
9
+
10
+ # Documentation Quality for AI Agents
11
+
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
+ >
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.
15
+
16
+ ## Context
17
+
18
+ Technical documentation is part of the product contract. A document can compile, render, and contain no broken links while still being wrong, incomplete, difficult to use, or stale. Treat documentation changes with the same evidence discipline as executable changes: identify the reader, identify the authoritative source, make the smallest coherent change, and verify what can be observed.
19
+
20
+ ## Documentation quality model
21
+
22
+ Review documentation across independent dimensions:
23
+
24
+ - **Accuracy** — facts match the implementation, public contract, schema, registry, configuration, or other authoritative source.
25
+ - **Completeness** — the intended reader has enough information to complete the intended task.
26
+ - **Consistency** — terminology, values, commands, and behavior do not contradict other authoritative documentation.
27
+ - **Precision** — statements are specific enough to act on and verify.
28
+ - **Usefulness** — the content serves a real reader need rather than filling a template.
29
+ - **Freshness** — current supported behavior is documented and obsolete claims are removed or versioned.
30
+ - **Findability** — readers can reach the content through predictable navigation and descriptive headings/links.
31
+ - **Accessibility** — structure and meaning remain usable with assistive technology and without visual-only cues.
32
+ - **Verifiability** — executable or machine-defined claims are checked against authoritative sources where feasible.
33
+ - **Flow** — prerequisites, actions, results, and recovery guidance follow the reader's task without unrelated detours.
34
+
35
+ Functional correctness is required before polish. A beautiful document that is inaccurate is not high-quality documentation.
36
+
37
+ ## Identify the reader and job
38
+
39
+ Before writing, answer:
40
+
41
+ - Who is the intended reader?
42
+ - What are they trying to accomplish or understand?
43
+ - What can they reasonably be expected to know?
44
+ - What prerequisites must exist?
45
+ - What is the expected result?
46
+ - Which project source owns each factual claim?
47
+ - Which checks can verify the result?
48
+
49
+ Do not write from memory when the repository contains a more authoritative source.
50
+
51
+ ## Documentation modes
52
+
53
+ Use the Diátaxis model as a practical mental model. Do not create empty structures merely to satisfy it.
54
+
55
+ ### Tutorial
56
+
57
+ Use a tutorial for learning. Provide a controlled, safe path that produces a working result and helps the reader acquire familiarity. Keep optional branches and exhaustive reference material out of the main learning flow.
58
+
59
+ ### How-to guide
60
+
61
+ Use a how-to guide for a real task. State the goal and prerequisites, provide ordered actions, show the expected result, and include verification or recovery where useful. Link to explanation rather than interrupting the procedure with long conceptual digressions.
62
+
63
+ ### Reference
64
+
65
+ Use reference for authoritative technical facts: APIs, CLI commands, configuration, schemas, environment variables, statuses, and error codes. Prioritize accuracy, completeness, precision, neutrality, and predictable structure. Where possible, structure reference documentation to reflect the structure of the system it describes.
66
+
67
+ ### Explanation
68
+
69
+ Use explanation for understanding: architecture, concepts, trade-offs, context, and why the system behaves as it does. Keep required operational steps in how-to material.
70
+
71
+ ## README quality
72
+
73
+ A repository README should normally make it possible to answer:
74
+
75
+ 1. What is this project?
76
+ 2. Why would I use it?
77
+ 3. What are the prerequisites?
78
+ 4. How do I get a minimal working result?
79
+ 5. Where is deeper documentation?
80
+ 6. How do I get help or contribute when relevant?
81
+ 7. What license or support policy applies?
82
+
83
+ Keep the README as an entry point. Move deep tutorials, reference, architecture, and troubleshooting to dedicated documents when they grow.
84
+
85
+ ## Canonical sources and docs-as-code
86
+
87
+ Prefer one authoritative source for machine-defined facts.
88
+
89
+ Examples:
90
+
91
+ ```text
92
+ package scripts -> documented development commands
93
+ CLI registry -> CLI reference
94
+ OpenAPI description -> HTTP API reference
95
+ JSON Schema/types -> configuration/reference fields
96
+ error registry -> error-code reference
97
+ runtime config -> environment-variable reference
98
+ protocol constants -> lifecycle/status reference
99
+ ```
100
+
101
+ Generate or validate projections when practical. Do not manually copy the same factual table into multiple documents.
102
+
103
+ ## Generated and handwritten documentation
104
+
105
+ Generated content must have an explicit owner and deterministic generation path. Edit the canonical source or generator, not the generated projection.
106
+
107
+ Keep handwritten content for reader context, explanation, examples, and guidance that cannot be mechanically derived.
108
+
109
+ If generated regions use markers, validation must fail closed on missing, duplicate, nested, malformed, or unknown regions rather than silently rewriting arbitrary content.
110
+
111
+ ## Documentation impact analysis
112
+
113
+ For each task, assess whether it changes:
114
+
115
+ - public behavior;
116
+ - API or CLI syntax;
117
+ - installation or prerequisites;
118
+ - configuration or environment variables;
119
+ - architecture or trust boundaries;
120
+ - authentication or authorization;
121
+ - errors or observable states;
122
+ - deployment or operation;
123
+ - version compatibility;
124
+ - deprecations or migration steps;
125
+ - examples or workflows.
126
+
127
+ Update affected documentation in the same task when the change is required for correct use.
128
+
129
+ ## Freshness and timeless wording
130
+
131
+ Avoid time-sensitive words such as `new`, `currently`, `latest`, `now`, or `soon` in evergreen technical documentation when they will age without adding information.
132
+
133
+ Use explicit versions or dates when history or compatibility requires them.
134
+
135
+ Release notes, migration histories, and announcements may intentionally use time-based language.
136
+
137
+ ## Writing style and terminology
138
+
139
+ - Use direct, concise language.
140
+ - Prefer active voice.
141
+ - Use second person where it clarifies reader actions.
142
+ - Prefer specific nouns and verbs over vague references.
143
+ - Use one canonical term per concept.
144
+ - Define acronyms when the intended audience may not know them.
145
+ - Use sentence-case headings unless project style requires otherwise.
146
+ - Avoid idioms, culture-specific jokes, unnecessary metaphors, and ambiguous language in globally consumed documentation.
147
+ - Use normative `MUST`, `SHOULD`, and `MAY` only when the document is truly specifying requirement levels.
148
+
149
+ ## Procedures
150
+
151
+ A procedure should normally include:
152
+
153
+ ```text
154
+ goal
155
+ prerequisites
156
+ ordered actions
157
+ expected result
158
+ verification
159
+ recovery/troubleshooting
160
+ ```
161
+
162
+ Use numbered steps when order matters and imperative verbs for required actions.
163
+
164
+ Do not hide a prerequisite after the step that depends on it.
165
+
166
+ ## Commands and code samples
167
+
168
+ Runnable commands and copyable code must be safe and credible.
169
+
170
+ - Validate examples when feasible.
171
+ - Never invent successful command output.
172
+ - Label illustrative output explicitly.
173
+ - Use clear placeholders.
174
+ - Never include real secrets, tokens, private keys, PII, or production credentials.
175
+ - Explain destructive effects before the command.
176
+ - Follow the project's language and formatting conventions.
177
+ - Prefer real text over screenshots of terminal output or code.
178
+
179
+ ## API documentation
180
+
181
+ For HTTP APIs, use a machine-readable description such as OpenAPI when the project already supports or benefits from it.
182
+
183
+ Document relevant:
184
+
185
+ - authentication and authorization;
186
+ - operations and paths;
187
+ - parameters;
188
+ - request and response bodies;
189
+ - status codes and errors;
190
+ - pagination;
191
+ - rate limits;
192
+ - idempotency;
193
+ - webhooks;
194
+ - versioning;
195
+ - deprecation;
196
+ - examples.
197
+
198
+ Do not require OpenAPI for projects without an HTTP API.
199
+
200
+ ## CLI documentation
201
+
202
+ CLI reference should describe relevant:
203
+
204
+ - usage;
205
+ - commands;
206
+ - arguments;
207
+ - options;
208
+ - aliases;
209
+ - defaults;
210
+ - repeatable options;
211
+ - exit/error behavior;
212
+ - examples;
213
+ - shell-sensitive behavior;
214
+ - configuration precedence.
215
+
216
+ Derive or validate these facts from the CLI registry/parser when possible.
217
+
218
+ ## Configuration and environment documentation
219
+
220
+ Document each public configuration item with relevant:
221
+
222
+ ```text
223
+ name
224
+ purpose
225
+ type
226
+ required/optional
227
+ default
228
+ allowed values
229
+ safe example
230
+ secret classification
231
+ scope
232
+ precedence
233
+ reload/restart behavior
234
+ ```
235
+
236
+ Keep `.env.example`, runtime configuration, and documentation consistent.
237
+
238
+ ## Architecture documentation
239
+
240
+ Document the architecture at the smallest useful level.
241
+
242
+ Cover relevant:
243
+
244
+ - system context;
245
+ - major runtime boundaries;
246
+ - dependencies;
247
+ - data flow;
248
+ - trust boundaries;
249
+ - storage;
250
+ - external systems;
251
+ - deployment topology;
252
+ - important architectural decisions.
253
+
254
+ Use diagrams only when they improve understanding. A context/container view is enough for many systems; do not generate every possible diagram level.
255
+
256
+ For significant decisions, use an ADR or equivalent record containing context, decision, alternatives when useful, consequences, and status.
257
+
258
+ ## Troubleshooting and runbooks
259
+
260
+ Write troubleshooting around observable symptoms or stable error codes.
261
+
262
+ Prefer:
263
+
264
+ ```text
265
+ symptom
266
+ likely cause
267
+ how to verify
268
+ correction
269
+ next diagnostic/escalation step
270
+ ```
271
+
272
+ Operational runbooks should identify trigger, access prerequisites, safety checks, steps, verification, rollback, and escalation.
273
+
274
+ ## Accessibility
275
+
276
+ - Use one clear title.
277
+ - Maintain meaningful heading hierarchy.
278
+ - Use descriptive link text instead of `click here`.
279
+ - Provide text alternatives for informative images.
280
+ - Do not put unique information only in screenshots or diagrams.
281
+ - Do not use color, location, shape, or direction as the only semantic cue.
282
+ - Use tables for tabular data, not layout.
283
+ - Keep long content scannable.
284
+ - Prefer real text for code and terminal output.
285
+
286
+ ## Security and sensitive information
287
+
288
+ Documentation must not expose:
289
+
290
+ ```text
291
+ tokens
292
+ passwords
293
+ private keys
294
+ real credentials
295
+ session identifiers
296
+ personal data
297
+ production connection strings
298
+ internal secrets
299
+ ```
300
+
301
+ Use explicitly fake examples. Authentication and authorization documentation must match actual server-side behavior and permissions.
302
+
303
+ ## Versioning, deprecation, and migration
304
+
305
+ If the project has a versioned public API, keep its documentation precise and comprehensive enough to understand compatibility.
306
+
307
+ Document breaking changes and deprecations. When users need action to upgrade, provide a migration guide with affected versions, prerequisites, steps, verification, rollback/recovery, and known incompatibilities.
308
+
309
+ Do not promise removal dates or future behavior unless the project has committed to them.
310
+
311
+ ## Validation and evidence
312
+
313
+ Use the project's own tools first.
314
+
315
+ Possible checks include:
316
+
317
+ - Markdown lint/validation;
318
+ - internal link and anchor validation;
319
+ - external link checks with an explicit network-failure policy;
320
+ - documentation build;
321
+ - code example execution or compilation;
322
+ - OpenAPI/schema validation;
323
+ - CLI/reference parity;
324
+ - configuration/reference parity;
325
+ - generated-document freshness;
326
+ - diagram source/artifact parity;
327
+ - README quick-start execution.
328
+
329
+ Do not install optional tooling solely to satisfy this list.
330
+
331
+ If a required check is unavailable, record it as blocked or `NOT_VERIFIED`. Never report an unexecuted check as passed.
332
+
333
+ ## Anti-patterns
334
+
335
+ Avoid:
336
+
337
+ - README as a dumping ground;
338
+ - tutorials mixed with exhaustive reference;
339
+ - procedures interrupted by unrelated explanation;
340
+ - factual tables manually duplicated across files;
341
+ - untested commands presented as guaranteed;
342
+ - invented output;
343
+ - screenshots of code or terminal text;
344
+ - stale time-sensitive wording;
345
+ - dead-end documents with no navigation;
346
+ - manual edits to generated documentation;
347
+ - undocumented breaking changes;
348
+ - known required documentation deferred indefinitely after behavior changes.
349
+
350
+ ## Agent workflow
351
+
352
+ For documentation work:
353
+
354
+ 1. Discover relevant documentation and project truth sources.
355
+ 2. Classify the reader need: tutorial, how-to, reference, or explanation.
356
+ 3. Identify the authoritative source for factual claims.
357
+ 4. Map documentation impact.
358
+ 5. Make the smallest coherent update.
359
+ 6. Run relevant project-native documentation checks.
360
+ 7. Inspect the diff from the intended reader's perspective.
361
+ 8. Cross-check facts against implementation or canonical machine sources.
362
+ 9. Record observed verification evidence through the project/ForgeLoop verification flow.
363
+ 10. Do not claim completion beyond the evidence.
364
+
365
+ ## Documentation Definition of Done
366
+
367
+ Before completion verify:
368
+
369
+ - [ ] Intended reader and purpose are clear.
370
+ - [ ] Factual claims match authoritative project sources.
371
+ - [ ] The documentation mode fits the reader need.
372
+ - [ ] Required information is complete for the intended task.
373
+ - [ ] Terminology is consistent.
374
+ - [ ] Procedures are ordered and actionable.
375
+ - [ ] Examples and commands are safe and validated when feasible.
376
+ - [ ] Internal navigation and links are coherent.
377
+ - [ ] Accessibility basics are satisfied.
378
+ - [ ] No real secrets or sensitive data appear.
379
+ - [ ] Generated/reference material is fresh.
380
+ - [ ] Version/deprecation/migration impact is documented when applicable.
381
+ - [ ] Relevant project-native checks have observed evidence.
382
+ - [ ] Unavailable required checks are explicitly `NOT_VERIFIED` or blocked.
383
+ - [ ] The completion claim does not exceed the evidence.
384
+
385
+ ## Sources and further reading
386
+
387
+ This guide is an original operational synthesis informed by:
388
+
389
+ - Diátaxis — https://diataxis.fr/
390
+ - Diátaxis quality — https://diataxis.fr/quality/
391
+ - Google Developer Documentation Style Guide — https://developers.google.com/style
392
+ - Google accessible documentation guidance — https://developers.google.com/style/accessibility
393
+ - Google code sample guidance — https://developers.google.com/style/code-samples
394
+ - Google timeless documentation guidance — https://developers.google.com/style/timeless-documentation
395
+ - GitHub repository documentation guidance — https://docs.github.com/en/repositories/creating-and-managing-repositories/best-practices-for-repositories
396
+ - W3C WAI writing guidance — https://www.w3.org/WAI/tips/writing/
397
+ - OpenAPI Specification — https://spec.openapis.org/oas/
398
+ - Semantic Versioning — https://semver.org/
399
+ - C4 model — https://c4model.com/
400
+ - RFC 2119 — https://www.rfc-editor.org/rfc/rfc2119.html
@@ -3,7 +3,7 @@ name: taste-frontend-eng
3
3
  language: en
4
4
  description: "Contextual visual-taste review for premium frontend and brand-heavy work."
5
5
  version: "2026.09"
6
- last-reviewed: "2026-08-10"
6
+ last-reviewed: "2026-08-17"
7
7
  guide-id: taste
8
8
  ---
9
9
 
@@ -107,8 +107,11 @@ Use the existing product system when one is present. If the target has no
107
107
  system, choose a small coherent set of semantic tokens, components, states,
108
108
  and usage rules that the team can maintain. A vendor guide, gallery, template,
109
109
  or AI output can inform a direction, but it is not evidence of product fit,
110
- license, accessibility, or performance. Keep any external reference in the
111
- task's source and attribution records; do not add a network dependency to
110
+ license, accessibility, or performance. For React-specific external component
111
+ or motion references, follow the React Bits adoption rules in
112
+ [`design-code-eng.md`](./design-code-eng.md) rather than treating a gallery
113
+ component as a project design-system default. Keep any external reference in
114
+ the task's source and attribution records; do not add a network dependency to
112
115
  ForgeLoop runtime.
113
116
 
114
117
  ## Visual Pre-Flight