wogiflow 2.5.9 → 2.5.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.
|
@@ -411,30 +411,50 @@ After implementing all scenarios, BEFORE quality gates:
|
|
|
411
411
|
| Remove deprecated API | "What in this file provides the same FUNCTIONALITY as the deprecated API?" | Wrapper functions, polyfills, compatibility shims, re-implementations |
|
|
412
412
|
| Fix all raw JSON.parse | "What in this file deserializes JSON?" | Utility functions that call JSON.parse internally, library wrappers |
|
|
413
413
|
|
|
414
|
-
3. **
|
|
414
|
+
3. **Trace data-providing imports one level (MANDATORY)**:
|
|
415
|
+
|
|
416
|
+
The semantic scan in step 2 catches inline instances but gives a free pass to imported values. Imported constants, configurations, and helpers can contain the exact thing you're looking for — hidden behind one level of indirection and a legitimate-sounding name (`DEFAULT_*`, `INITIAL_*`, `FALLBACK_*`, `BASE_*`).
|
|
417
|
+
|
|
418
|
+
**For every import statement in each scoped file**, classify it:
|
|
419
|
+
|
|
420
|
+
| Import Type | Example | Action |
|
|
421
|
+
|-------------|---------|--------|
|
|
422
|
+
| **Data-providing** | `import { RATE_OPTIONS } from './constants'` | MUST read the source file and apply the semantic question to its contents |
|
|
423
|
+
| **Utility/function** | `import { formatDate } from './utils'` | Skip — unless the function wraps or returns the target pattern |
|
|
424
|
+
| **Type/interface** | `import type { Customer } from './types'` | Skip — types don't contain runtime data |
|
|
425
|
+
| **Style/asset** | `import styles from './styles.module.css'` | Skip |
|
|
426
|
+
| **Component** | `import { Button } from './ui'` | Skip — unless it's a wrapper that embeds the target pattern |
|
|
427
|
+
|
|
428
|
+
**How to classify**: If the import provides a value that gets **rendered, displayed, logged, passed to an API, or used as configuration** — it's data-providing. Read its source.
|
|
429
|
+
|
|
430
|
+
**Anti-pattern — naming convention bias**: Constants named `DEFAULT_*`, `INITIAL_*`, `FALLBACK_*`, `CONFIG_*`, `BASE_*` look legitimate but are often hardcoded placeholders. The name is NOT evidence of legitimacy. Only the source is.
|
|
431
|
+
|
|
432
|
+
**Rule**: Any imported value that contributes to **user-visible output** and resolves to a hardcoded literal (not an API call, env var, or database query) is an instance of [X] — regardless of what it's named or which directory it lives in.
|
|
433
|
+
|
|
434
|
+
4. **Produce a numbered inventory** and display it to the user:
|
|
415
435
|
```
|
|
416
436
|
━━━ PRE-IMPLEMENTATION INVENTORY ━━━
|
|
417
437
|
Found N instances of [X] across M files:
|
|
418
438
|
|
|
419
|
-
1. [file:lines] — [description] [TYPE: syntactic|semantic]
|
|
420
|
-
2. [file:lines] — [description] [TYPE: syntactic|semantic]
|
|
439
|
+
1. [file:lines] — [description] [TYPE: syntactic|semantic|import-traced]
|
|
440
|
+
2. [file:lines] — [description] [TYPE: syntactic|semantic|import-traced]
|
|
421
441
|
...
|
|
422
442
|
|
|
423
443
|
Total: N instances (S syntactic, M semantic)
|
|
424
444
|
Confirm inventory is complete before proceeding? [Y/adjust]
|
|
425
445
|
```
|
|
426
446
|
|
|
427
|
-
|
|
447
|
+
5. **Wait for user confirmation** that the inventory is complete. If the user identifies missing items, add them. This step is CRITICAL — it commits the AI to a concrete scope that can be verified later.
|
|
428
448
|
|
|
429
449
|
#### Phase B: Implementation
|
|
430
450
|
|
|
431
|
-
|
|
451
|
+
6. Implement the removal/fix/replacement for EVERY item in the inventory. Each inventory item becomes a trackable unit of work.
|
|
432
452
|
|
|
433
453
|
#### Phase C: Post-Implementation Re-Inventory (AFTER all changes)
|
|
434
454
|
|
|
435
|
-
|
|
455
|
+
7. **Re-run the SAME semantic scan** from Phase A (including import tracing from step 3) on the SAME set of files. Do NOT downgrade to pattern-only search.
|
|
436
456
|
|
|
437
|
-
|
|
457
|
+
8. **Diff the inventories**:
|
|
438
458
|
```
|
|
439
459
|
━━━ POST-IMPLEMENTATION VERIFICATION ━━━
|
|
440
460
|
Re-scanned M files for [X]:
|
|
@@ -447,9 +467,9 @@ After implementing all scenarios, BEFORE quality gates:
|
|
|
447
467
|
Result: N/N removed (0 remaining)
|
|
448
468
|
```
|
|
449
469
|
|
|
450
|
-
|
|
470
|
+
9. **If ANY items remain** → task is NOT done. Fix the remaining items and re-verify. Do NOT proceed to quality gates with remaining items.
|
|
451
471
|
|
|
452
|
-
|
|
472
|
+
10. **If new instances are discovered** during re-scan (including via import tracing) that weren't in the original inventory → add them, fix them, and note them as "discovered during verification."
|
|
453
473
|
|
|
454
474
|
**Why this works**: The inventory creates a concrete, numbered checklist BEFORE implementation. The AI cannot claim "done" when the post-inventory shows items still present — the evidence is in the conversation. The pre/post diff is unfakeable.
|
|
455
475
|
|