mustflow 2.99.2 → 2.103.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/run.js +11 -0
- package/dist/cli/commands/skill.js +76 -2
- package/dist/cli/i18n/en.js +2 -0
- package/dist/cli/i18n/es.js +2 -0
- package/dist/cli/i18n/fr.js +2 -0
- package/dist/cli/i18n/hi.js +2 -0
- package/dist/cli/i18n/ko.js +2 -0
- package/dist/cli/i18n/zh.js +2 -0
- package/dist/cli/lib/external-skill-import.js +455 -0
- package/dist/cli/lib/local-index/index.js +5 -1
- package/dist/cli/lib/local-index/sql.js +9 -1
- package/dist/cli/lib/run-plan.js +37 -0
- package/dist/core/change-impact.js +16 -0
- package/dist/core/code-outline.js +3 -13
- package/dist/core/config-chain.js +3 -13
- package/dist/core/dependency-graph.js +3 -13
- package/dist/core/docs-link-integrity.js +23 -4
- package/dist/core/env-contract.js +3 -13
- package/dist/core/export-diff.js +3 -3
- package/dist/core/ignored-directories.js +40 -0
- package/dist/core/public-json-contracts.js +16 -0
- package/dist/core/reference-drift.js +4 -2
- package/dist/core/related-files.js +3 -13
- package/dist/core/repo-merge-conflict-scan.js +3 -9
- package/dist/core/route-outline.js +3 -13
- package/dist/core/script-pack-suggestions.js +23 -12
- package/dist/core/secret-risk-scan.js +3 -13
- package/dist/core/skill-route-resolution.js +74 -6
- package/package.json +2 -2
- package/schemas/README.md +3 -0
- package/schemas/link-integrity-report.schema.json +1 -0
- package/schemas/reference-drift-report.schema.json +1 -0
- package/schemas/skill-import-report.schema.json +97 -0
- package/templates/default/i18n.toml +52 -10
- package/templates/default/locales/en/.mustflow/skills/INDEX.md +22 -2
- package/templates/default/locales/en/.mustflow/skills/ai-generated-code-hardening/SKILL.md +30 -7
- package/templates/default/locales/en/.mustflow/skills/api-request-performance-review/SKILL.md +12 -6
- package/templates/default/locales/en/.mustflow/skills/c-code-change/SKILL.md +371 -0
- package/templates/default/locales/en/.mustflow/skills/clarifying-question-gate/SKILL.md +53 -14
- package/templates/default/locales/en/.mustflow/skills/completion-evidence-gate/SKILL.md +26 -3
- package/templates/default/locales/en/.mustflow/skills/css-code-change/SKILL.md +74 -24
- package/templates/default/locales/en/.mustflow/skills/docs-prose-review/SKILL.md +36 -10
- package/templates/default/locales/en/.mustflow/skills/github-contribution-quality-gate/SKILL.md +27 -3
- package/templates/default/locales/en/.mustflow/skills/hot-path-performance-review/SKILL.md +20 -15
- package/templates/default/locales/en/.mustflow/skills/html-code-change/SKILL.md +37 -21
- package/templates/default/locales/en/.mustflow/skills/next-action-menu/SKILL.md +22 -7
- package/templates/default/locales/en/.mustflow/skills/quadratic-scan-review/SKILL.md +21 -19
- package/templates/default/locales/en/.mustflow/skills/react-code-change/SKILL.md +324 -0
- package/templates/default/locales/en/.mustflow/skills/routes.toml +24 -0
- package/templates/default/locales/en/.mustflow/skills/shell-code-change/SKILL.md +279 -0
- package/templates/default/locales/en/.mustflow/skills/structured-config-change/SKILL.md +170 -0
- package/templates/default/locales/en/.mustflow/skills/vertical-slice-tdd/SKILL.md +22 -8
- package/templates/default/manifest.toml +29 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
mustflow_doc: skill.css-code-change
|
|
3
3
|
locale: en
|
|
4
4
|
canonical: true
|
|
5
|
-
revision:
|
|
5
|
+
revision: 4
|
|
6
6
|
lifecycle: mustflow-owned
|
|
7
7
|
authority: procedure
|
|
8
8
|
name: css-code-change
|
|
@@ -47,8 +47,10 @@ Preserve cascade order, specificity discipline, resilient responsive layout, des
|
|
|
47
47
|
|
|
48
48
|
- Global CSS entrypoints, reset/base styles, cascade layer strategy, token files, theme config, component CSS, parent layout styles, browserslist, build config, and style lint config.
|
|
49
49
|
- Existing responsive, dark mode, accessibility, focus, reduced-motion, breakpoint, and design-token conventions.
|
|
50
|
+
- Theme and token graph: raw palette tokens, semantic role tokens, component tokens, theme axes, user override state, system preference handling, forced-colors policy, and generated platform token outputs when present.
|
|
50
51
|
- Target surfaces for narrow viewports, 200% zoom, text scaling, delayed media, third-party markup, and browser compatibility.
|
|
51
52
|
- Browser-native capabilities in use or available for the target: cascade layers, `:where`, `:is`, `:has`, container queries, logical properties, `dvh`/`svh`/`lvh`, `color-scheme`, `content-visibility`, `contain-intrinsic-size`, `text-wrap`, and view-transition styling.
|
|
53
|
+
- Motion and transition capabilities in use or available for the target: `@starting-style`, `transition-behavior`, individual transform properties, `@property`, scroll-driven animation, reduced motion, and `will-change` policy.
|
|
52
54
|
- Configured verification intents.
|
|
53
55
|
|
|
54
56
|
<!-- mustflow-section: preconditions -->
|
|
@@ -72,29 +74,40 @@ Preserve cascade order, specificity discipline, resilient responsive layout, des
|
|
|
72
74
|
|
|
73
75
|
1. Read global style entrypoints, tokens, component styles, parent layout styles, and build/lint config.
|
|
74
76
|
2. Map the cascade: reset, base, tokens, layout, components, utilities, overrides.
|
|
75
|
-
3.
|
|
76
|
-
4.
|
|
77
|
-
5.
|
|
78
|
-
6. Do not add
|
|
79
|
-
7.
|
|
80
|
-
8.
|
|
81
|
-
9.
|
|
82
|
-
10.
|
|
83
|
-
11.
|
|
84
|
-
12.
|
|
85
|
-
13. Use
|
|
86
|
-
14.
|
|
87
|
-
15. Do not
|
|
88
|
-
16.
|
|
89
|
-
17.
|
|
90
|
-
18.
|
|
91
|
-
19.
|
|
92
|
-
20.
|
|
93
|
-
21.
|
|
94
|
-
22.
|
|
95
|
-
23.
|
|
96
|
-
24.
|
|
97
|
-
25.
|
|
77
|
+
3. Debug cascade before selector strength. Resolve conflicts by checking origin, importance, layer order, unlayered rules, selector specificity, `@scope` proximity, source order, import order, token choice, component boundary, parent layout, and selector scope first.
|
|
78
|
+
4. Treat `@layer` as an ordering contract. Put reset, vendor, design-system, component, utility, and override CSS into intentional layers; do not migrate only one part of a stylesheet into layers when unlayered legacy CSS would silently beat it.
|
|
79
|
+
5. Remember that `!important` reverses layer priority. Do not add important declarations until the layer model and exception reason are clear.
|
|
80
|
+
6. Do not add ID selectors for styling, selectors with more than two combinators, or new `!important` unless an allowed exception is documented.
|
|
81
|
+
7. Do not use negative margin to repair normal content flow. Fix parent layout, spacing, alignment, or intrinsic sizing instead.
|
|
82
|
+
8. Do not add inline styles for color, spacing, typography, focus, dark mode, or responsive layout. Inline styles are for runtime geometry such as drag positions, virtualized offsets, and measured canvas/SVG values.
|
|
83
|
+
9. Use existing color, spacing, font, radius, shadow, z-index, and breakpoint tokens before adding literals.
|
|
84
|
+
10. Keep raw color values out of component CSS. Add or reuse semantic tokens for surfaces, text, borders, actions, danger states, focus, disabled states, and dark mode.
|
|
85
|
+
11. Avoid raw pixel values for typography, spacing, layout dimensions, and radius. Allow narrow values such as one-pixel borders, intrinsic icon/media dimensions, and established breakpoint tokens.
|
|
86
|
+
12. Make layout responsive through constraints, `min-width: 0`, `min-height: 0`, min/max sizing, flex/grid, wrapping, gap, intrinsic media dimensions, container/media queries, logical properties, and content-based rules rather than fixed viewport assumptions.
|
|
87
|
+
13. Use `flex: 1 1 0` plus `min-width: 0` when equal columns must actually shrink. Use `minmax(0, 1fr)` for grid tracks that must not be held open by long content.
|
|
88
|
+
14. Prefer named containers and container queries when a component responds to its actual slot, not the whole viewport. Keep media queries for page-level viewport decisions.
|
|
89
|
+
15. Remember that container queries style descendants, not the queried container itself. Do not add `container-type: size` without checking that size containment will not collapse an element that depends on its children for size.
|
|
90
|
+
16. Do not set fixed width on page, section, container, card, modal, or form layouts. Do not set fixed height on components that contain text.
|
|
91
|
+
17. Use dynamic viewport units intentionally: `dvh` for current viewport height, `svh` for stable small viewport layout, and `lvh` only when the larger viewport behavior is intended. Avoid hard `100vh` for mobile app shells unless the target proves safe.
|
|
92
|
+
18. Do not use viewport-only typography. Use bounded responsive type patterns that survive small screens and large displays.
|
|
93
|
+
19. Do not use `overflow: hidden` to hide layout bugs. Allow it only for intentional clipping such as avatars, media crops, masks, or animation containers.
|
|
94
|
+
20. Check containing blocks and stacking contexts before increasing z-index. `position`, `transform`, `opacity`, `filter`, `contain`, `container-type`, and overflow ancestors can change sticky behavior, absolute positioning, clipping, and overlay ordering.
|
|
95
|
+
21. Prefer `gap` inside flex or grid stacks instead of vertical margin choreography when margin collapse could make spacing ambiguous.
|
|
96
|
+
22. Ensure shared UI reset or base CSS uses `box-sizing: border-box` unless the project intentionally preserves content-box sizing.
|
|
97
|
+
23. Reserve dimensions or aspect ratio for images, videos, iframes, ads, embeds, skeletons, fonts, and lazy content that could cause layout shift.
|
|
98
|
+
24. Prefer `:where` to keep wrapper and rich-text selector specificity low. Use `:is`, `:not`, `:has`, and native nesting only after checking the highest selector in the list will not smuggle in unwanted specificity.
|
|
99
|
+
25. Keep `:has` anchored to a narrow owner such as a component root and narrow the inner selector with child or sibling combinators when possible. Avoid `body:has(...)`, `:root:has(...)`, or `*:has(...)` unless the broad invalidation cost and fallback are explicitly accepted.
|
|
100
|
+
26. Use `content-visibility` only for offscreen or below-the-fold content whose skipped rendering will not hide focus targets, search-relevant initial content, or accessibility-critical relationships. Pair it with `contain-intrinsic-size` to avoid layout jumps.
|
|
101
|
+
27. Use `color-scheme` with theme tokens so native controls, scrollbars, and form UI match the active theme before component JavaScript runs. Do not treat `color-scheme` as a replacement for actual page background, text, surface, and border tokens.
|
|
102
|
+
28. Preserve visible focus, sufficient contrast, 200% text resize behavior, text-spacing stress, keyboard navigation, and reduced-motion behavior.
|
|
103
|
+
29. If hover styling changes an interactive affordance, provide a matching focus-visible affordance.
|
|
104
|
+
30. Prefer outline and outline-offset for focus indicators. Do not rely only on shadows when ancestors may clip overflow or forced-colors mode may remove shadows.
|
|
105
|
+
31. Respect reduced motion for parallax, large transforms, auto-scroll, route transitions, autoplay carousels, skeleton shimmer, and looping decorative animation.
|
|
106
|
+
32. Animate `transform`, individual transform properties, and `opacity` before layout-affecting properties. Avoid `transition: all`.
|
|
107
|
+
33. Use newer transition and animation features such as `@starting-style`, `transition-behavior`, intrinsic-size interpolation, `@property`, individual transforms, scroll timelines, and animation composition only with browser-target review and a safe fallback.
|
|
108
|
+
34. Keep `will-change` narrow, temporary, and evidence-backed. Do not leave broad permanent compositor hints on ordinary components.
|
|
109
|
+
35. Check browser compatibility before adding new CSS features. Use progressive enhancement for newly available features and avoid limited-availability features unless the project browser target allows them.
|
|
110
|
+
36. Choose configured verification intents that cover style lint, build, visual states, accessibility, and browser target risk when available.
|
|
98
111
|
|
|
99
112
|
<!-- mustflow-section: cascade-specificity-policy -->
|
|
100
113
|
## Cascade And Specificity Policy
|
|
@@ -104,6 +117,11 @@ Preserve cascade order, specificity discipline, resilient responsive layout, des
|
|
|
104
117
|
- Do not write DOM-path selectors that break when markup gains or loses a wrapper.
|
|
105
118
|
- Use low-specificity contextual selectors for rich text or CMS areas. Prefer patterns that keep specificity easy to override.
|
|
106
119
|
- Use `:where` for low-specificity grouping and `@layer` for order. Do not use `:is` or `:has` to smuggle in heavy selectors when a class boundary would be clearer.
|
|
120
|
+
- Keep third-party, reset, and vendor CSS in lower layers when possible. Do not assume a high-specificity vendor selector beats a lower-specificity app selector in a later layer.
|
|
121
|
+
- Treat unlayered CSS as a migration hazard because normal unlayered declarations outrank normal layered declarations.
|
|
122
|
+
- Do not mix ID selectors into a shared `:is`, `:not`, `:has`, or nested selector list unless every generated selector is intended to carry that specificity.
|
|
123
|
+
- Use `[id="..."]` instead of `#id` only when a real ID anchor must be selected without ID specificity, and document the reason.
|
|
124
|
+
- Treat `@scope` proximity as part of conflict analysis when scoped rules with equal weight compete.
|
|
107
125
|
- Do not add global overrides for local component problems when component-scoped styling or tokens can solve the issue.
|
|
108
126
|
- New `!important` requires an explicit exception for immutable third-party/legacy markup, third-party inline style override, urgent accessibility protection, or equivalent narrow reason.
|
|
109
127
|
|
|
@@ -117,17 +135,45 @@ Preserve cascade order, specificity discipline, resilient responsive layout, des
|
|
|
117
135
|
- Avoid `100vw` except for deliberate full-bleed designs; otherwise prefer normal containing-block width.
|
|
118
136
|
- Avoid `100vh` for mobile app shells when browser chrome can change the visual viewport. Choose `dvh`, `svh`, or a layout-owned min-height intentionally.
|
|
119
137
|
- Avoid absolute positioning for normal document flow. Use it only for overlays, decorative placement, controls anchored to known boxes, or measured geometry.
|
|
138
|
+
- Check sticky positioning against overflow ancestors and required inset values before changing z-index or position.
|
|
139
|
+
- Check absolute positioning against the nearest positioned ancestor before changing coordinates.
|
|
140
|
+
- Prefer logical properties such as `inline-size`, `block-size`, `padding-inline`, `margin-block`, and `inset-inline-end` for component CSS that should survive RTL or alternate writing modes.
|
|
120
141
|
|
|
121
142
|
<!-- mustflow-section: token-accessibility-policy -->
|
|
122
143
|
## Token And Accessibility Policy
|
|
123
144
|
|
|
124
145
|
- Name visual values by role, not by raw color or numeric value.
|
|
146
|
+
- Keep the token graph layered as palette or raw values, semantic role tokens, then component tokens. Components should not consume raw palette values when the value carries theme, brand, contrast, or state meaning.
|
|
147
|
+
- Do not encode `light` or `dark` into the core token name when theme mode is an axis that should select the value. Prefer stable role names whose values vary by theme, brand, density, or contrast mode.
|
|
148
|
+
- Treat `prefers-color-scheme` as the system default only. If the product has an app theme setting, model `system`, explicit light, and explicit dark so user choice can override the OS preference.
|
|
149
|
+
- Treat `forced-colors` and high-contrast modes as separate accessibility modes, not as darker dark mode. Use system colors, borders, and outlines where shadows or brand colors may be ignored.
|
|
125
150
|
- Search existing tokens before adding a value. If a new value has product meaning, theme impact, repeated use, or dark-mode behavior, add it at the token source.
|
|
151
|
+
- Review token aliases for cycles, stale references, and source-to-generated drift before adding derived tokens.
|
|
152
|
+
- Scope global custom properties to product-wide contracts and component custom properties to component roots. Do not dump one-off component internals into `:root`.
|
|
153
|
+
- Use `@property` only for runtime tokens that benefit from typed validation, inheritance control, or animation; avoid registering every design token by default.
|
|
126
154
|
- Body text and normal UI text should meet the project contrast target; large text and meaningful non-text UI indicators must remain distinguishable against adjacent colors.
|
|
155
|
+
- Review contrast as foreground/background pairs such as text-on-surface, text-on-action, border-on-danger, and focus-on-surface. A single color token cannot prove contrast alone.
|
|
127
156
|
- Do not communicate state by color alone. Pair color with text, icon shape, border, position, or another non-color signal when meaning matters.
|
|
128
157
|
- Never remove focus indication without replacing it in the same change.
|
|
158
|
+
- Keep focus-ring tokens separate from brand color tokens. Focus needs width, offset, inner or outer color, and background-specific contrast that survives dark mode, images, clipping, and forced colors.
|
|
159
|
+
- Include assets, icons, charts, illustrations, shadows, elevation, disabled states, error states, and skeletons in theme review; a theme is not only background and text color.
|
|
129
160
|
- Verify focus, error, selected, disabled, hover, active, and dark-mode states when token or component color changes.
|
|
130
161
|
|
|
162
|
+
<!-- mustflow-section: motion-policy -->
|
|
163
|
+
## Motion And Transition Policy
|
|
164
|
+
|
|
165
|
+
- Do not use `transition: all`; list the properties that are intentionally animated.
|
|
166
|
+
- Prefer `transform`, individual transform properties such as `translate`, `scale`, and `rotate`, and `opacity` for cheap motion.
|
|
167
|
+
- Do not animate layout-affecting properties such as height, width, margins, top, left, or font size unless the interaction genuinely changes layout and the target browsers and fallback are reviewed.
|
|
168
|
+
- Use `@starting-style` for first-render entry transitions only when supported or safely progressive.
|
|
169
|
+
- Use `transition-behavior: allow-discrete` and overlay-related discrete transitions only when display or top-layer exit behavior actually needs it and fallback behavior remains acceptable.
|
|
170
|
+
- Use intrinsic-size animation such as `interpolate-size` or `calc-size()` only as progressive enhancement; do not assume it removes layout cost.
|
|
171
|
+
- Use registered custom properties for animatable typed values only when project browser targets allow it.
|
|
172
|
+
- Do not let multiple transforms from hover, state, and keyframes overwrite each other accidentally. Prefer individual transform properties or explicit composition.
|
|
173
|
+
- Keep scroll-driven animation behind compatibility checks and declare `animation-timeline` after the `animation` shorthand when both are used.
|
|
174
|
+
- Respect `prefers-reduced-motion` by removing, shortening, or replacing nonessential large movement; do not merely speed up the same disorienting motion.
|
|
175
|
+
- Add `will-change` only near a known animation or interaction and remove or scope it when the hint is no longer needed.
|
|
176
|
+
|
|
131
177
|
<!-- mustflow-section: browser-compatibility-policy -->
|
|
132
178
|
## Browser Compatibility Policy
|
|
133
179
|
|
|
@@ -156,14 +202,18 @@ Every exception must explain why a lower-specificity, token-based, or layout-lev
|
|
|
156
202
|
Reject the change when:
|
|
157
203
|
|
|
158
204
|
- It adds styling ID selectors, long descendant chains, or unexplained `!important`.
|
|
205
|
+
- It patches cascade failures without checking layer order, unlayered CSS, specificity from `:is` or nesting, scope proximity, or source order.
|
|
159
206
|
- It repairs normal document flow with negative margins or absolute positioning.
|
|
160
207
|
- It uses fixed width for containers or fixed height for text-containing UI.
|
|
161
208
|
- It hides layout bugs with `overflow: hidden`.
|
|
209
|
+
- It raises z-index without checking containing blocks, stacking contexts, top-layer options, or overflow clipping.
|
|
162
210
|
- It adds unsized media, embeds, ads, or lazy content that can shift layout.
|
|
211
|
+
- It adds raw palette values to component CSS, encodes theme modes into stable role-token names, treats `color-scheme` as a complete dark-mode implementation, or ignores forced-colors/high-contrast behavior.
|
|
163
212
|
- It uses `content-visibility` without an intrinsic-size fallback or on content that must be immediately reachable.
|
|
164
213
|
- It hardcodes raw component colors, spacing, font sizes, radius, or shadows without an exception.
|
|
165
214
|
- It removes focus styling, creates hover-only affordances, or clips the focus indicator.
|
|
166
215
|
- It adds motion without reduced-motion behavior.
|
|
216
|
+
- It uses `transition: all`, permanent broad `will-change`, or layout-affecting animation without compatibility and performance review.
|
|
167
217
|
- It uses a new CSS feature without compatibility/fallback review.
|
|
168
218
|
|
|
169
219
|
<!-- mustflow-section: postconditions -->
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
mustflow_doc: skill.docs-prose-review
|
|
3
3
|
locale: en
|
|
4
4
|
canonical: true
|
|
5
|
-
revision:
|
|
5
|
+
revision: 3
|
|
6
6
|
lifecycle: mustflow-owned
|
|
7
7
|
authority: procedure
|
|
8
8
|
name: docs-prose-review
|
|
9
|
-
description: Apply this skill when a documentation review queue entry needs prose cleanup for LLM-like wording, awkward phrasing, literal translation, unnatural tone, or review comments attached to the queue entry.
|
|
9
|
+
description: Apply this skill when a documentation review queue entry or selected document needs prose cleanup for LLM-like wording, AI-slop signals, low-specificity boilerplate, awkward phrasing, literal translation, unnatural tone, Korean technical translationese, or review comments attached to the queue entry.
|
|
10
10
|
metadata:
|
|
11
11
|
mustflow_schema: "1"
|
|
12
12
|
mustflow_kind: procedure
|
|
@@ -24,6 +24,8 @@ metadata:
|
|
|
24
24
|
|
|
25
25
|
Review one queued documentation file at a time and make its prose read naturally while preserving the document's technical contract.
|
|
26
26
|
|
|
27
|
+
This skill treats "AI smell" as a prose-quality signal, not as authorship proof. The goal is to remove low-information writing, translation artifacts, and domain-term drift without accusing a writer, changing facts, or making the text artificially messy.
|
|
28
|
+
|
|
27
29
|
<!-- mustflow-section: use-when -->
|
|
28
30
|
## Use When
|
|
29
31
|
|
|
@@ -31,6 +33,8 @@ Review one queued documentation file at a time and make its prose read naturally
|
|
|
31
33
|
- A document is listed in the mustflow documentation review queue.
|
|
32
34
|
- The queue entry includes a review comment that explains how the document should be checked or revised.
|
|
33
35
|
- Prose sounds like LLM output, literal translation, filler, duplicated explanation, or unnatural Korean, English, or localized writing.
|
|
36
|
+
- A Korean technical document, README, tutorial, report, abstract, release note, or guide contains AI-slop signals such as vague value claims, translationese, formulaic tutorial framing, repeated passive voice, low-specificity modifiers, or domain-term mistranslations.
|
|
37
|
+
- The requested cleanup is to make writing more human, concrete, idiomatic, domain-accurate, or less template-like while preserving facts, code, commands, identifiers, and public contracts.
|
|
34
38
|
- The reviewer is a human, LLM, tool, or external process and needs to record the review result.
|
|
35
39
|
|
|
36
40
|
<!-- mustflow-section: do-not-use-when -->
|
|
@@ -40,6 +44,8 @@ Review one queued documentation file at a time and make its prose read naturally
|
|
|
40
44
|
- The document is not in the review queue and the task does not ask to add it.
|
|
41
45
|
- The requested change would alter commands, paths, code blocks, schemas, field names, public contracts, or technical meaning.
|
|
42
46
|
- The reviewer cannot understand the target language well enough to improve prose safely.
|
|
47
|
+
- The task asks to identify, accuse, or certify a human author, AI author, plagiarism status, detector score, or policy violation from prose style alone.
|
|
48
|
+
- The only requested change is to add intentional typos, random sentence variation, slang, emotional color, or "human imperfections" without improving clarity, evidence, or domain accuracy.
|
|
43
49
|
|
|
44
50
|
<!-- mustflow-section: required-inputs -->
|
|
45
51
|
## Required Inputs
|
|
@@ -48,6 +54,8 @@ Review one queued documentation file at a time and make its prose read naturally
|
|
|
48
54
|
- Any review comment attached to the queue entry.
|
|
49
55
|
- The current file contents.
|
|
50
56
|
- The intended document language and existing document structure.
|
|
57
|
+
- The intended audience, genre, and register when known: README, tutorial, product docs, API docs, release notes, report, academic abstract, blog post, or maintainer-facing note.
|
|
58
|
+
- Domain terminology that must stay exact, including code identifiers, API names, commands, package names, standard terms, and accepted translations.
|
|
51
59
|
- The reviewer kind and free-form reviewer identifier for the review record.
|
|
52
60
|
- `.mustflow/config/commands.toml` to resolve any verification intents.
|
|
53
61
|
|
|
@@ -58,6 +66,7 @@ Review one queued documentation file at a time and make its prose read naturally
|
|
|
58
66
|
- The queue entry or selected path exists in the current mustflow root.
|
|
59
67
|
- Higher-priority instructions, repository style, and command policy have been checked for the current scope.
|
|
60
68
|
- The reviewer can preserve technical meaning while improving prose.
|
|
69
|
+
- Style concerns can be tied to concrete text spans, not only a general feeling that the document sounds like AI output.
|
|
61
70
|
|
|
62
71
|
<!-- mustflow-section: allowed-edits -->
|
|
63
72
|
## Allowed Edits
|
|
@@ -65,6 +74,8 @@ Review one queued documentation file at a time and make its prose read naturally
|
|
|
65
74
|
- Edit only the selected documentation file and review ledger entry unless the user explicitly broadens scope.
|
|
66
75
|
- Preserve headings, frontmatter identity, tables, command examples, code blocks, paths, field names, and schema names unless they are the direct source of the prose issue.
|
|
67
76
|
- Do not rewrite the whole document only to change tone.
|
|
77
|
+
- Do not fabricate evidence, numbers, production experience, failure stories, user quotes, benchmarks, or implementation history to make the document feel more human.
|
|
78
|
+
- Do not replace precise technical terms with casual synonyms only to avoid repetition.
|
|
68
79
|
- Do not remove a document from the queue without either improving it, marking it as still needing review, or explicitly recording why it should be ignored.
|
|
69
80
|
|
|
70
81
|
<!-- mustflow-section: procedure -->
|
|
@@ -74,17 +85,29 @@ Review one queued documentation file at a time and make its prose read naturally
|
|
|
74
85
|
2. If the entry has a review comment, treat it as the primary review guidance. Preserve the same technical safety boundaries as the rest of this skill.
|
|
75
86
|
3. If the entry has no review comment, inspect the document normally for awkward, LLM-like, over-explained, duplicated, literal, or unnatural prose.
|
|
76
87
|
4. Read the entire selected file before editing so terminology, heading structure, examples, and references stay consistent.
|
|
77
|
-
5.
|
|
78
|
-
6. Preserve
|
|
79
|
-
7.
|
|
80
|
-
8.
|
|
81
|
-
|
|
82
|
-
|
|
88
|
+
5. Diagnose prose issues as quality problems, not authorship evidence. Prefer labels such as vague claim, translationese, passive-agent gap, filler, repeated frame, tone mismatch, or domain-term drift.
|
|
89
|
+
6. Preserve meaning before style. Keep technical facts, literals, commands, code identifiers, paths, URLs, option names, schema names, API names, and measured values unchanged unless the source text is demonstrably wrong.
|
|
90
|
+
7. Replace vague praise with concrete reader value, actor, action, condition, or evidence. For example, do not leave "important role", "efficiently handles", "seamless integration", "user-friendly", "stable and scalable", "can contribute to", or "has potential" unless the sentence also states how, where, or under what evidence.
|
|
91
|
+
8. For Korean prose, reduce English-shaped translationese when it hurts clarity:
|
|
92
|
+
- prefer direct actors over repeated `-됩니다`, `-수행됩니다`, `-생성됩니다`, `-확인됩니다`;
|
|
93
|
+
- replace `~를 통해`, `~에 있어서`, `~에 의해`, `가능하게 합니다`, and `다음과 같습니다` when they only mirror English structure;
|
|
94
|
+
- avoid formulaic openings such as `이 글에서는 ... 알아보겠습니다` when the document can start with the task or claim;
|
|
95
|
+
- treat words such as `flaky`, `spoof`, `thin wrapper`, `heatmap`, `tainted`, `sandboxed`, and `code rot` as domain terms that may need accepted technical translations rather than dictionary-level literal phrasing.
|
|
96
|
+
9. Check specificity. A strong technical sentence usually answers at least one of these: who acts, what changes, where it applies, how much changes, which condition matters, or what evidence supports it.
|
|
97
|
+
10. Vary rhythm only in service of readability. Do not introduce artificial typos, random slang, forced metaphors, or sentence-length noise to evade an AI detector.
|
|
98
|
+
11. Avoid over-editing. Leave good local phrasing alone, even if it is polished. Edit the smallest span that removes the concrete prose problem.
|
|
99
|
+
12. Apply the review comment or prose cleanup with minimal, meaning-preserving edits.
|
|
100
|
+
13. Preserve executable snippets, paths, field names, option names, identifiers, frontmatter identity, and tables.
|
|
101
|
+
14. If the comment is ambiguous or the meaning is unclear, do not guess. Mark the entry as still needing human review and summarize what needs a human decision.
|
|
102
|
+
15. If the file does not need prose changes, mark the entry approved or ignored with a concise summary that explains why.
|
|
103
|
+
16. After a successful prose review, mark the queue entry approved with reviewer metadata and a short summary.
|
|
104
|
+
17. Run relevant configured verification intents when the edit changes public docs or installed workflow docs.
|
|
83
105
|
|
|
84
106
|
<!-- mustflow-section: postconditions -->
|
|
85
107
|
## Postconditions
|
|
86
108
|
|
|
87
109
|
- The selected document reads more naturally without changing technical meaning.
|
|
110
|
+
- Low-specificity, boilerplate, translationese, passive-agent, and domain-term issues are fixed only where the text showed concrete evidence.
|
|
88
111
|
- The review queue entry is approved, marked for human review, or ignored with reviewer metadata.
|
|
89
112
|
- Any skipped edit, unresolved meaning question, or missing command intent is reported.
|
|
90
113
|
|
|
@@ -104,6 +127,9 @@ Do not infer missing validation commands.
|
|
|
104
127
|
- If the queue cannot be inspected, report the blocked queue step and do not edit blindly.
|
|
105
128
|
- If the selected file is missing, mark or report the stale queue entry instead of creating a replacement document.
|
|
106
129
|
- If the language or technical meaning is uncertain, mark the entry as still needing human review.
|
|
130
|
+
- If a phrase sounds AI-like but is also normal for the document genre, do not treat the phrase alone as a defect; look for low specificity, repetition, or meaning loss.
|
|
131
|
+
- If removing AI-slop signals would require inventing facts, examples, numbers, or lived experience, preserve the claim boundary and report the missing evidence instead.
|
|
132
|
+
- If a literal translation might be an accepted domain term, verify local usage in the document or repository before changing it.
|
|
107
133
|
- If validation fails after prose edits, fix the first relevant documentation or workflow issue before marking the review complete.
|
|
108
134
|
|
|
109
135
|
<!-- mustflow-section: output-format -->
|
|
@@ -111,9 +137,9 @@ Do not infer missing validation commands.
|
|
|
111
137
|
|
|
112
138
|
- Queue entry selected
|
|
113
139
|
- Review comment followed or reason no comment was present
|
|
114
|
-
- Prose issues fixed
|
|
140
|
+
- Prose issues fixed: vague claims, low-specificity boilerplate, translationese, passive-agent gaps, filler, repeated frame, tone mismatch, or domain-term drift
|
|
115
141
|
- Review status recorded
|
|
116
142
|
- Reviewer kind and reviewer identifier used
|
|
117
143
|
- Command intents run
|
|
118
144
|
- Skipped command intents and reasons
|
|
119
|
-
- Remaining language, meaning, or validation risks
|
|
145
|
+
- Remaining language, meaning, evidence, authorship-attribution, or validation risks
|
package/templates/default/locales/en/.mustflow/skills/github-contribution-quality-gate/SKILL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
mustflow_doc: skill.github-contribution-quality-gate
|
|
3
3
|
locale: en
|
|
4
4
|
canonical: true
|
|
5
|
-
revision:
|
|
5
|
+
revision: 3
|
|
6
6
|
lifecycle: mustflow-owned
|
|
7
7
|
authority: procedure
|
|
8
8
|
name: github-contribution-quality-gate
|
|
@@ -55,6 +55,9 @@ The goal is not polished prose. The goal is verified, scoped, actionable informa
|
|
|
55
55
|
- Duplicate and context search evidence: searched terms, open and closed issues, open and closed pull requests, discussions when used by the repository, documentation, changelog, and related maintainer comments.
|
|
56
56
|
- User evidence: reproduction steps, minimal example, logs, screenshots, recordings, changed files, local test output, failing command, environment, version, linked issue, or maintainer question being answered.
|
|
57
57
|
- Draft structure evidence: proposed title, first-screen summary, section headings, Markdown tables, task lists, code blocks, details blocks, screenshots, links, review order, and unresolved questions.
|
|
58
|
+
- Pull request readiness evidence when relevant: whether the PR should be ready for review or draft,
|
|
59
|
+
whether the title follows repository style without agent/vendor prefixes, and whether any review
|
|
60
|
+
re-request is explicitly warranted.
|
|
58
61
|
- Verification level: personally reproduced, partially reproduced, inferred from code, inferred from logs, not reproduced, not searched, or not verified.
|
|
59
62
|
- Desired result: report a bug, propose a feature, submit a fix, ask for design approval, answer a maintainer, provide missing evidence, or close the loop.
|
|
60
63
|
|
|
@@ -97,13 +100,27 @@ The goal is not polished prose. The goal is verified, scoped, actionable informa
|
|
|
97
100
|
- `same problem here` without new evidence is not new value.
|
|
98
101
|
6. Plan the reading order before polishing prose.
|
|
99
102
|
- Title should name the observed result for issues or the guaranteed behavior after a PR, not labels such as `[BUG]`, `fix`, `WIP`, or implementation chores.
|
|
103
|
+
- Do not add agent, assistant, vendor, or tool prefixes such as `[codex]`, `[AI]`, or `[bot]`
|
|
104
|
+
unless the target repository explicitly requires them. Prefer the repository's conventional
|
|
105
|
+
commit or title style so the changed behavior stays first.
|
|
100
106
|
- First screen should contain conclusion, impact, and requested decision. Move long logs, full outputs, screenshots, and alternatives below or into `<details>`.
|
|
101
107
|
- Headings should answer one question each. Avoid dump headings such as `Details`, `Misc`, `Notes`, or `Context` unless the repository template requires them.
|
|
102
108
|
- Separate observed facts, current hypotheses, decisions, and unknowns. Use `Cause` only when the cause is confirmed.
|
|
103
109
|
7. For bug issues, require actual behavior, expected behavior, exact reproduction steps, smallest reasonable reproduction, version, environment, relevant logs or screenshots, regression status, attempted workarounds, concrete impact, and completion criteria.
|
|
104
110
|
8. For feature or enhancement issues, require user problem, affected users, current workflow, desired workflow, why existing behavior is insufficient, related discussions, compatibility impact, alternatives considered, and non-goals when the proposal can sprawl.
|
|
105
111
|
9. For documentation issues, require exact page, section, symbol, command, or example; current wording or behavior; expected wording or explanation; and evidence that the current documentation is stale or misleading when available.
|
|
106
|
-
10. For pull requests, require focused scope, linked issue or prior discussion when non-trivial, changed behavior, intentionally unchanged behavior, tests added or updated, exact verification results, compatibility notes for public surfaces, UI screenshots when relevant, and
|
|
112
|
+
10. For pull requests, require focused scope, linked issue or prior discussion when non-trivial, changed behavior, intentionally unchanged behavior, tests added or updated, exact verification results, compatibility notes for public surfaces, UI screenshots when relevant, and a readiness decision.
|
|
113
|
+
- Use ready-for-review as the default for small, independent fixes or narrow improvements when
|
|
114
|
+
the relevant checks were run, known limitations can be stated in the PR body, and no
|
|
115
|
+
maintainer design decision is needed.
|
|
116
|
+
- Use draft only when the PR is intentionally discussion-first, changes public API shape, needs
|
|
117
|
+
design direction, has blocked or intentionally incomplete verification, or is likely to
|
|
118
|
+
conflict with other active work.
|
|
119
|
+
- If a draft PR becomes ready after verification, mark that transition in the PR body or update
|
|
120
|
+
comment instead of leaving the ready state implicit.
|
|
121
|
+
- Do not re-request review merely because a draft was marked ready. Re-request only when a
|
|
122
|
+
specific reviewer was already involved, the maintainer asked for it, or repository rules say
|
|
123
|
+
to request review after the ready transition.
|
|
107
124
|
11. For PR review guidance, provide a review order by reasoning path rather than dumping changed files. Name files or commits only when they help reviewers inspect behavior, generated output, tests, or mechanical-only changes in the right order.
|
|
108
125
|
12. For review replies, answer the maintainer's actual question first. Provide requested logs, reproduction, design tradeoff, tests, or blocker. Do not answer a different question because it is easier.
|
|
109
126
|
13. Use Markdown elements by job, not decoration.
|
|
@@ -134,7 +151,8 @@ The goal is not polished prose. The goal is verified, scoped, actionable informa
|
|
|
134
151
|
- do not submit AI output that the human contributor has not reviewed, cannot explain, or could have tested but did not.
|
|
135
152
|
18. Choose a gate decision before writing the final draft:
|
|
136
153
|
- `POST` when the content follows repository rules and has enough verified value;
|
|
137
|
-
- `POST_AS_DRAFT` when a PR direction is useful but not ready for final review
|
|
154
|
+
- `POST_AS_DRAFT` when a PR direction is useful but not ready for final review, such as
|
|
155
|
+
discussion-first work, public API shape changes, blocked verification, or design approval;
|
|
138
156
|
- `ASK_IN_EXISTING_THREAD` when the evidence belongs in a related issue or PR;
|
|
139
157
|
- `DO_NOT_POST` when the content lacks verified value, duplicates existing content, violates repository rules, or the human contributor cannot defend it;
|
|
140
158
|
- `PRIVATE_SECURITY_REPORT` when the content should not be public.
|
|
@@ -149,6 +167,8 @@ The goal is not polished prose. The goal is verified, scoped, actionable informa
|
|
|
149
167
|
- Duplicate search is summarized with confidence.
|
|
150
168
|
- Every technical claim in the draft is tied to evidence or marked uncertain.
|
|
151
169
|
- Title, first-screen summary, section order, Markdown elements, verification, and risk handling help maintainers decide what to do next.
|
|
170
|
+
- PR readiness, draft state, and review-request behavior are chosen from evidence instead of using
|
|
171
|
+
draft or re-request as generic defaults.
|
|
152
172
|
- Security-sensitive content is not prepared for public posting.
|
|
153
173
|
- AI assistance is disclosed when required or material.
|
|
154
174
|
- The draft helps maintainers act faster or the skill blocks posting.
|
|
@@ -185,10 +205,12 @@ Use `changes_status` and `changes_diff_summary` when drafting a PR description o
|
|
|
185
205
|
- Duplicate and context check
|
|
186
206
|
- Evidence checked
|
|
187
207
|
- Information-structure and Markdown checks
|
|
208
|
+
- PR title, readiness, and review-request decision when relevant
|
|
188
209
|
- Missing evidence
|
|
189
210
|
- Draft
|
|
190
211
|
- Final self-check:
|
|
191
212
|
- Does the title state the observed issue result or PR outcome instead of metadata?
|
|
213
|
+
- Does the PR title avoid agent, assistant, vendor, or tool prefixes unless the repository requires them?
|
|
192
214
|
- Can a maintainer understand the conclusion, impact, and requested action from the first screen?
|
|
193
215
|
- Do headings, tables, task lists, details blocks, code blocks, screenshots, and links each have one clear job?
|
|
194
216
|
- Can a maintainer reproduce or review this without guessing?
|
|
@@ -197,6 +219,8 @@ Use `changes_status` and `changes_diff_summary` when drafting a PR description o
|
|
|
197
219
|
- Is every technical claim backed by evidence?
|
|
198
220
|
- Are facts, hypotheses, decisions, and unknowns separated?
|
|
199
221
|
- Does a PR include review focus, verification results, unverified areas, and risk or rollback notes when relevant?
|
|
222
|
+
- Is a verified small PR ready for review instead of unnecessarily draft?
|
|
223
|
+
- If a draft PR became ready, is any review re-request justified by maintainer request, repository rules, or an already involved reviewer?
|
|
200
224
|
- Were feasible tests or verification checks run or honestly skipped?
|
|
201
225
|
- Is AI assistance disclosed when required or material?
|
|
202
226
|
- Can the human contributor explain and defend the content without AI?
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
mustflow_doc: skill.hot-path-performance-review
|
|
3
3
|
locale: en
|
|
4
4
|
canonical: true
|
|
5
|
-
revision:
|
|
5
|
+
revision: 2
|
|
6
6
|
lifecycle: mustflow-owned
|
|
7
7
|
authority: procedure
|
|
8
8
|
name: hot-path-performance-review
|
|
9
|
-
description: Apply this skill when code is created, changed, reviewed, or reported and the main performance risk is ordinary work repeated many times, such as repeated I/O, repeated scans, hidden quadratic lookup, per-item
|
|
9
|
+
description: Apply this skill when code is created, changed, reviewed, or reported and the main performance risk is ordinary work repeated many times, such as repeated I/O, repeated scans, hidden quadratic lookup, allocation or GC churn, per-item parsing or serialization, lock hold time, sequential async waits, unbounded fan-out, or missing observability for hot paths.
|
|
10
10
|
metadata:
|
|
11
11
|
mustflow_schema: "1"
|
|
12
12
|
mustflow_kind: procedure
|
|
@@ -54,7 +54,7 @@ The review question is not only "which line looks slow?" It is "how often does t
|
|
|
54
54
|
|
|
55
55
|
- Hot path: the request, loop, render, job, export, import, queue consumer, sync, report, or command path under review.
|
|
56
56
|
- Multipliers: requests, rows, items, files, users, tenants, retries, pages, renders, workers, queue messages, shards, or nested loops that multiply the work.
|
|
57
|
-
- Per-iteration cost: external calls, queries, filesystem reads,
|
|
57
|
+
- Per-iteration cost: external calls, queries, filesystem reads, temporary arrays, object spreads, array spreads, concat copies, clones, DTO conversions, JSON parse/stringify, string splitting, logging, formatting, regex, sorting, hashing, image or crypto work, and lock hold time.
|
|
58
58
|
- Boundary ledger: DB, network, cache, filesystem, IPC, provider SDK, queue, logger, metrics sink, transaction, pool, mutex, thread, goroutine, task, or UI main thread crossed by the path.
|
|
59
59
|
- Data-size and tail-latency evidence when available: p50, p95, p99, row count, payload size, allocation count, query count, round-trip count, queue depth, pool wait, lock wait, cache hit rate, retry count, or timeout behavior.
|
|
60
60
|
- Correctness boundaries: order, duplicates, idempotency, authorization, tenant isolation, consistency, partial failure, stale data, cancellation, retry semantics, and error behavior.
|
|
@@ -100,22 +100,27 @@ The review question is not only "which line looks slow?" It is "how often does t
|
|
|
100
100
|
10. Reuse expensive clients and sessions. Per-request or per-item HTTP clients, DB clients, ORM clients, SDK clients, connection pools, TLS handshakes, regexes, date formatters, and thread pools are performance traps unless the API requires that lifecycle.
|
|
101
101
|
11. Check cache honesty. A cache needs a bounded key space, invalidation or TTL, max size, authorization dimensions, negative-cache policy, stale behavior, and cache stampede protection such as locking, singleflight, early refresh, or request coalescing.
|
|
102
102
|
12. Check logging and telemetry in hot paths. Repeated debug logs, eager log-string creation, whole-object serialization, high-cardinality metrics, and JSON formatting for discarded logs can dominate CPU and I/O during incidents.
|
|
103
|
-
13. Check
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
103
|
+
13. Check allocation and GC churn before micro-optimizing arithmetic.
|
|
104
|
+
- `filter().map().reduce()`, `flatMap`, `Object.values`, `Object.entries`, `split().map(trim)`, `slice`, and `sort` chains can allocate large temporary arrays.
|
|
105
|
+
- Spread accumulation, `concat` in loops, repeated object spread while building indexes, and `cloneDeep` can copy growing data many times.
|
|
106
|
+
- `JSON.stringify` or `JSON.parse(JSON.stringify(...))` used for comparison, cloning, cache keys, or logging can dominate CPU and allocation while losing type semantics.
|
|
107
|
+
- Repeated `RegExp`, `Date`, `Intl`, formatter, `Set`, or `Map` construction inside hot loops should move outside the loop or become request-scoped only when ownership and memory bounds are clear.
|
|
108
|
+
14. Check string, JSON, DTO, and clone churn. Repeated string concatenation, `JSON.parse(JSON.stringify(...))`, `cloneDeep`, broad object spread, deep copy, repeated DTO-to-DTO conversion, and repeated serialization can move the bottleneck into "clean" mapping code.
|
|
109
|
+
15. Check large value passing and materialization. In value-copy languages or APIs, large structs, arrays, buffers, spread copies, full file reads, full JSON loads, all-pages accumulation, and eager `collect` calls can turn neat code into memory traffic.
|
|
110
|
+
16. Check regex, parsing, formatting, and locale work. Nested or ambiguous regexes, repeated date parsing, timezone conversion, numeric or locale formatting, and per-row formatter creation should be reviewed with worst-case input in mind.
|
|
111
|
+
17. Check CPU-heavy work in request or UI paths. Image resizing, compression, encryption, hashing, diffing, report generation, spreadsheet export, and search indexing may need batching, worker offload, queueing, or streaming, but only with clear backpressure and failure behavior.
|
|
112
|
+
18. Check queues and workers. Moving work to a queue only moves the bottleneck unless consumers batch DB writes, bulk external calls where safe, bound retries, apply jitter, define poison-message handling, and expose backlog.
|
|
113
|
+
19. Check retry and timeout multiplication. A request with several calls, long timeouts, and several retries can become a tail-latency monster. Count worst-case wait and verify idempotency before adding more attempts.
|
|
114
|
+
20. Review tail behavior, not just average. p50 can look fine while p95 or p99 holds locks, connections, workers, or thread-pool slots long enough to hurt everyone else.
|
|
115
|
+
21. Add observability before large optimization when evidence is missing. Prefer query count, external-call count, payload bytes, allocation count, heap growth, GC pause, event-loop delay, cache hit rate, queue backlog, queue wait, pool wait, lock wait, retry count, and span timing over guessing.
|
|
116
|
+
22. Rank the likely payoff. Usually fix repeated external round trips, N+1 access, hidden quadratic scans, overfetching, wide transactions, lock hold time, allocation churn, unbounded fan-out, and missing timeouts before micro-optimizing arithmetic.
|
|
117
|
+
23. Label evidence honestly. If there is no configured benchmark or production trace, report the finding as static complexity or hot-path risk, not measured speedup.
|
|
113
118
|
|
|
114
119
|
<!-- mustflow-section: postconditions -->
|
|
115
120
|
## Postconditions
|
|
116
121
|
|
|
117
122
|
- Hot path, cost multipliers, data size, round-trip count, wait points, and copy or allocation points are explicit.
|
|
118
|
-
- N+1 queries, repeated external calls, hidden quadratic scans, unbounded materialization, sequential waits, unbounded fan-out, per-item client creation, broad logging, repeated serialization, and lock or transaction hold time are fixed or reported.
|
|
123
|
+
- N+1 queries, repeated external calls, hidden quadratic scans, unbounded materialization, temporary-array chains, spread or concat copy accumulation, sequential waits, unbounded fan-out, per-item client creation, broad logging, repeated parsing or serialization, allocation churn, and lock or transaction hold time are fixed or reported.
|
|
119
124
|
- Cache, queue, retry, timeout, batching, bulk-write, concurrency, pagination, projection, index-fit, and observability behavior are explicit where relevant.
|
|
120
125
|
- Correctness, authorization, tenant isolation, ordering, duplicates, partial failure, cancellation, and stale-data behavior remain intact or are called out as tradeoffs.
|
|
121
126
|
- Performance claims are backed by configured evidence or labeled as static review risk.
|
|
@@ -151,7 +156,7 @@ Use the narrowest configured test, build, docs, release, or mustflow intent that
|
|
|
151
156
|
- Hot path reviewed
|
|
152
157
|
- Cost ledger: iteration count, data size, round trips, wait time, copy or allocation count
|
|
153
158
|
- Repeated external access, N+1, hidden quadratic scans, and multi-pass collection findings
|
|
154
|
-
- DB, pagination, index-fit, transaction, lock, async, client reuse, cache, queue, retry, timeout, logging, serialization, clone, regex, parsing, formatting, and CPU-heavy work checked where relevant
|
|
159
|
+
- DB, pagination, index-fit, transaction, lock, async, client reuse, cache, queue, retry, timeout, logging, temporary arrays, spread or concat accumulation, serialization, clone, regex, parsing, formatting, allocation, GC, and CPU-heavy work checked where relevant
|
|
155
160
|
- Optimization or review recommendation
|
|
156
161
|
- Evidence level: measured, configured-test evidence, static complexity risk, manual-only, missing, or not applicable
|
|
157
162
|
- Command intents run
|