docs(work): scaffold conformance-hardening-v1 epic + stories
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
---
|
||||
id: 01-ast-manifest-source
|
||||
epic: conformance-hardening-v1
|
||||
title: Replace regex manifest source parser with AST
|
||||
type: technical-story
|
||||
status: in-progress
|
||||
feature: core-eslint
|
||||
depends-on: []
|
||||
blocks: [02-dev-seed-assertion]
|
||||
---
|
||||
|
||||
## Goal
|
||||
`readManifestSource` in `_manifest-source.js` returns the same shape but
|
||||
uses `@typescript-eslint/parser` AST traversal instead of regex.
|
||||
|
||||
## In scope
|
||||
- Rewrite `readManifestSource` to delegate to a new `parseManifestFully`
|
||||
in `_manifest-ast.js` that returns `{ name, requiredCores, useCases }`
|
||||
- Existing 4 tests for `readManifestSource` must still pass
|
||||
- Add tests covering the previously-fragile cases: `name:` in JSDoc,
|
||||
single-quoted strings, manifest declared with `let` instead of `const`
|
||||
|
||||
## Out of scope
|
||||
- Changing the `_manifest-source.js` exports surface (filesystem helpers
|
||||
`manifestPathForFeature` and `featureRootForFile` stay untouched)
|
||||
- Changing any rule's behaviour beyond the parsing path
|
||||
|
||||
## Tasks
|
||||
- [ ] Epic + story scaffold
|
||||
- [ ] Extend `_manifest-ast.js` with `parseManifestFully`
|
||||
- [ ] Switch `readManifestSource` to delegate to `parseManifestFully`
|
||||
- [ ] Add edge-case tests
|
||||
- [ ] Verify all rules still pass; commit
|
||||
Reference in New Issue
Block a user