You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adds a reproducible workflow for converting layout-dependent Excel designs into traceable machine-readable tables. Includes mapping guidance, OOXML validation, a reconstruction script, and tests.
Risk tier:merge-risk:high — Privileged execution, automation, or review-policy change Required to merge: passing submission-gate checks plus 1 approval from reviewers with write access, including a maintainer with admin or maintain permission.
Why this tier
skills/excel-design-reconstruction/scripts/reconstruct.py is a high-risk path (automation, scripts, MCP config, hooks, or review policy)
skills/excel-design-reconstruction/tests/test_reconstruction.py is a high-risk path (automation, scripts, MCP config, hooks, or review policy)
✓ [spec-compliance] All 1 skill(s) are spec-compliant.
ℹ️
✓ spec-compliance: All spec checks passed.
ℹ️
✓ [valid-refs] All file references across 1 skill(s) are valid.
ℹ️
✓ valid-refs: All file references resolve to existing files within the skill directory.
ℹ️
1 skill(s) linted, 1 passed
Full linter output
### Linting skills/excel-design-reconstruction
✅ excel-design-reconstruction (2/2 checks passed)
✓ [spec-compliance] All 1 skill(s) are spec-compliant.
✓ spec-compliance: All spec checks passed.
✓ [valid-refs] All file references across 1 skill(s) are valid.
✓ valid-refs: All file references resolve to existing files within the skill directory.
1 skill(s) linted, 1 passed
Addressed the five Copilot review findings and added the English-language skill update in 4863262: canonical regenerated OOXML package comparison (excluding ZIP encoding/timestamps and core created/modified timestamps); raw numeric/date OOXML values retained; 16,384-column guard including row_key; single-quoted YAML description; unavailable skill references removed. The source workbook's text and approved headers remain unchanged.
Validation: 38 tests passed on openpyxl 3.1.4 and 3.1.5; all 430 skills passed validation; npm run build and git diff --check passed; the synthetic packet and English text/link checks passed. Independent review of the English instructions is still pending.
Addressed all four Copilot review findings in 2a23476:
Added explicit Step 1 (inspect), Step 2 (mapping.json definition linking references/mapping.md), and Step 3 (fingerprint and approval) sections before Step 4 (build) in SKILL.md.
Updated references/mapping.md to say inspect the source workbook instead of inspect the source image.
Applied validate_text (Excel 32,767-character limit and disallowed control character check) to user-defined column names in prepare_tables and build_packet.
Recorded openpyxl_version in manifest.json during build and verified it before package comparison in verify_packet with a clear version mismatch error.
Validation: 40 unit tests pass, npm run skill:validate and npm run build pass with clean LF line endings.
Addressed the 2 follow-up review comments in 36bfe3e:
Deterministically serialize array and data-table formulas from OOXML <f> elements and attributes while preserving kind: "formula" so object memory addresses never appear in the inventory.
Read print-area ranges directly from sheet._print_area.ranges instead of reparsing the string representation with MultiCellRange, supporting sheet names with spaces and disjoint print areas.
Excel table column names are limited to 255 characters, but validate_text permits 32,767. A 256-character header therefore passes validation and becomes a table-column name that Excel cannot preserve as approved. Regenerating the same package with openpyxl does not detect this incompatibility. Reject headers longer than 255 characters here so fingerprinting and building enforce the table-specific limit.
Compare visibility flags explicitly against "True"
These inventory flags are strings, so both "True" and "False" satisfy assertTrue. The checks therefore pass even if hidden rows and columns are incorrectly reported as visible. Compare against "True" explicitly.
Addressed the new merged-range expansion finding in a8b647c. The SAX preflight now computes the non-anchor cell allocation for every worksheet and enforces a cumulative workbook-wide limit before openpyxl loads the workbook. Regression tests cover the reported A1:Z1048576 range on an unselected worksheet and cumulative allocation across worksheets.
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
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.
Adds a reproducible workflow for converting layout-dependent Excel designs into traceable machine-readable tables. Includes mapping guidance, OOXML validation, a reconstruction script, and tests.
Validation:
Business approval: Furukawa658