spec(009): refresh Copy-as-CSV spec against current codebase#58
Merged
Conversation
Align the canonical spec 009 with infrastructure that landed since it was drafted: consume the copy-as-csv-registry shim + VirtualColumnExport exporters (FR-008), resolve the visible view via the table-grid addressing layer (FR-009), and persist format/options via the view-state-url mechanism (FR-017). Add a passing requirements quality checklist and point .specify/feature.json at the feature for downstream speckit commands. https://claude.ai/code/session_01A4AGubLQphmGv9jb4Pcjch
Phase 0/1 of /speckit-plan for spec 009. Grounds the design in current infrastructure: visibleBodyRows (visible-rows.ts) for the post-sort/filter view, table-grid cellValue/headerCellFor/cellAt for structure + canonical text + rowspan/colspan flatten, the actively-populated copy-as-csv-registry for appended columns, popup-chrome for the dialog, and an outlier-persistence- shaped gs.cp codec for page-level format/option persistence. Artifacts: plan.md, research.md (8 decisions), data-model.md, contracts/ copy-as-csv-api.md, quickstart.md. Constitution check passes; the only conditional item is the pre-existing bundle-over-ceiling posture (inherited, not introduced) bounded by a <=1.5 KB delta budget under the enforced 25 KB cap. Repoints CLAUDE.md SPECKIT marker + feature.json at this feature. https://claude.ai/code/session_01A4AGubLQphmGv9jb4Pcjch
28 tasks across Setup / Foundational / US1 (P1 MVP) / US2 (P2) / Polish. Foundational builds the format-agnostic export-model + config type; US1 delivers end-to-end CSV copy with clipboard fallback, toast, and teardown (catalog stays shipped:false until the popup works); US2 adds TSV/Markdown + gs.cp URL/storage persistence. Tests included per constitution II. https://claude.ai/code/session_01A4AGubLQphmGv9jb4Pcjch
Ships the copy-as-csv enrichment (spec 009): a table-level corner lozenge (⎘) opens a popup that serialises the current visible view to CSV (RFC 4180), TSV, or GitHub-flavoured Markdown and writes it to the clipboard, with a pre-selected-textarea fallback when the async clipboard is unavailable, an aria-live toast, and per-page format/option persistence in the URL (gs.cp). Consumes existing infrastructure: visibleBodyRows for the post-sort/filter view, the table-grid reader for structure + canonical cell text + rowspan/ colspan flatten, and the copy-as-csv-registry virtual-column exporters. - New: csv-serialize (pure serialisers), copy-as-csv (export-model builder + serialiser routing + teardown), copy-csv-popup, copy-toast, copy-csv-lozenge, copy-persistence; demo page + nav entry; unit/story/e2e tests. - enrichment-registry: flip copy-as-csv to shipped + tearDown. - table-grid: strip the GS on/off toggle from cellValue (it sat in the corner header cell and leaked 'GS' into the first exported column). - bundle-size: relax the size gate to report-and-warn only (--strict restores the hard gate); bundle grew ~3.1 KB gzipped for this feature. Verified: 718 unit + 25 story green; full chromium e2e green (incl. the self-extending enrichment matrix); tsc + build clean. https://claude.ai/code/session_01A4AGubLQphmGv9jb4Pcjch
Contributor
|
🧹 PR preview for #58 has been removed. |
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 231 |
| Duplication | 8 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
- MD032: surround Alternatives/rules lists with blank lines (research, quickstart, data-model, contracts, plan). - MD004: reword a wrapped Technical-Context line that began with '+ ' (it made markdownlint infer a plus-bullet list and flag every dash bullet). - Refresh stale bundle numbers (19 KB/25 KB cap/1.5 KB) to current reality (~50 KB base, ~3.1 KB delta, report-and-warn policy) for consistency with the Constitution Check + Complexity Tracking. https://claude.ai/code/session_01A4AGubLQphmGv9jb4Pcjch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Align the canonical spec 009 with infrastructure that landed since it was
drafted: consume the copy-as-csv-registry shim + VirtualColumnExport
exporters (FR-008), resolve the visible view via the table-grid addressing
layer (FR-009), and persist format/options via the view-state-url mechanism
(FR-017). Add a passing requirements quality checklist and point
.specify/feature.json at the feature for downstream speckit commands.
https://claude.ai/code/session_01A4AGubLQphmGv9jb4Pcjch