{"owner":"apache","repo":"fesod","hasSkills":true,"totalSkillsCount":4,"totalTokensCount":2108,"categories":["root-instruction","mcp-config","marketplace","plugin-manifest"],"hasMcp":true,"mcpConfig":{"mcpServers":{"fesod":{"command":"npx","args":["-y","@modelcontextprotocol/server-fesod"]}}},"found":["AGENTS.md",".cursor/mcp.json",".claude-plugin/marketplace.json",".claude-plugin/plugin.json"],"skills":{"AGENTS.md":"# Apache Fesod (Incubating) AI Agent Instructions\n\nThis file provides guidance for AI coding agents working with the Apache Fesod (Incubating) codebase.\n\n## Project Overview\n\nApache Fesod (Incubating) is a Java library for processing spreadsheets (XLS/XLSX/CSV) without OOM, derived from Alibaba EasyExcel. It uses Apache POI under the hood with streaming SAX-based reading. The project is an Apache incubator project and must follow ASF conventions.\n\n- **Language**: Java 8+ (source/target = 1.8; CI builds on JDK 8, 11, 17, 21, 25 — JDK 17+ is recommended for local development)\n- **Build**: Maven 3.6.3 via `./mvnw` wrapper (project docs require 3.9+, but wrapper currently pins 3.6.3; both work)\n- **CI matrix**: JDK 8, 11, 17, 21, 25\n\n## Build & Test Commands\n\n```bash\n# Build (runs tests by default, per Maven/Apache convention)\n./mvnw clean install\n\n# Fast build without running tests\n./mvnw clean install -DskipTests\n\n# Run tests for the library modules only\n./mvnw clean package -pl fesod-common,fesod-shaded,fesod-sheet\n\n# Format check / auto-format\n./mvnw spotless:check\n./mvnw spotless:apply\n\n# Run tests by tag\n./mvnw test -Dtest.groups=unit          # fast unit tests only\n./mvnw test -Dtest.excludedGroups=fuzz  # exclude slow fuzz tests\n\n# Full install with javadoc (CI validation)\n./mvnw install -B -V\n./mvnw javadoc:javadoc\n```\n\n## Code Style & Conventions\n\n- **Formatter**: Palantir Java Format (enforced by Spotless, no checkstyle)\n- **Imports**: Static imports first, then regular imports; no unused imports (enforced by Spotless `importOrder` with `\\#|` separator)\n- **Indent**: 4 spaces\n- **License header**: ASF Apache 2.0 header required on all `.java`, `.xml`, `.yml`, `.toml` files. Header template at `tools/spotless/license-header.txt`; enforced by the Hawkeye workflow (`.github/workflows/license-check.yml`), not Spotless\n- **Lombok**: Allowed; config in `lombok.config` (`toString.callSuper = CALL`, `equalsAndHashCode.callSuper = CALL`)\n- **Commits**: English, format `type: description` (types: `fix`, `feat`, `refactor`, `test`, `docs`, `chore`, `style`, `dependency`)\n\n## Module Structure\n\n```\n(root)                 # Root POM (artifactId: fesod-parent), dependency & plugin management\n├── fesod-common/      # Zero-dependency utilities (org.apache.fesod.common.util)\n├── fesod-shaded/      # Relocated Spring ASM/cglib (org.apache.fesod.shaded)\n├── fesod-bom/         # BOM for downstream consumers\n└── fesod-sheet/       # Core library: read/write XLS/XLSX/CSV via POI\n    ├── src/main/java/org/apache/fesod/sheet/\n    │   ├── FesodSheet.java    # Main entry: FesodSheet.read() / FesodSheet.write()\n    │   ├── analysis/          # Read pipeline (v03=XLS BIFF, v07=XLSX SAX, csv)\n    │   ├── write/             # Write pipeline (builder, executor, handler chains)\n    │   ├── metadata/          # Data models, builders, csv/ property/\n    │   ├── converters/        # Type conversion framework (by Java type)\n    │   └── util/              # DateUtils, NumberUtils, WorkBookUtil, etc.\n    └── src/test/java/org/apache/fesod/sheet/\n        └── testkit/           # Test infrastructure (NOT a separate module)\n            ├── Tags.java      # @Tag constants: unit, round-trip, read, write, format, fuzz\n            ├── base/          # AbstractExcelTest (round-trip base)\n            ├── assertions/    # ExcelAssertions fluent API\n            └── builders/      # TestDataBuilder\n\n```\n\n## Testing Conventions\n\n- **JUnit 5** with `PER_CLASS` lifecycle and `ReplaceUnderscores` display name generator (configured globally in `fesod-sheet/src/test/resources/junit-platform.properties`, not via per-class annotations)\n- **Tags** (use `@Tag(Tags.XXX)`):\n  - `unit` — pure logic, no file I/O\n  - `round-trip` — write-then-read via `AbstractExcelTest`\n  - `read` / `write` — single-direction tests\n  - `format` — CSV/charset/date format tests\n  - `fuzz` — Jazzer property-based (slow, excluded in PR CI)\n- **Real-file tests**: Prefer `AbstractExcelTest.createTempFile()` + `ExcelAssertions` for integration tests\n- **Test data**: Use `TestDataBuilder.simpleData(n)` or model classes in `testkit/models/`\n\n## CI Checks (must pass before merge)\n\n1. `spotless:check` — format\n2. License header (hawkeye)\n3. Multi-JDK test matrix (8/11/17/21/25)\n4. `mvn install` + `mvn javadoc:javadoc`\n5. CodeQL security scan\n",".cursor/mcp.json":"# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/apache/fesod/HEAD/.cursor/mcp.json)",".claude-plugin/marketplace.json":"# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/apache/fesod/HEAD/.claude-plugin/marketplace.json)",".claude-plugin/plugin.json":"# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/apache/fesod/HEAD/.claude-plugin/plugin.json)"},"files":{"AGENTS.md":"# Apache Fesod (Incubating) AI Agent Instructions\n\nThis file provides guidance for AI coding agents working with the Apache Fesod (Incubating) codebase.\n\n## Project Overview\n\nApache Fesod (Incubating) is a Java library for processing spreadsheets (XLS/XLSX/CSV) without OOM, derived from Alibaba EasyExcel. It uses Apache POI under the hood with streaming SAX-based reading. The project is an Apache incubator project and must follow ASF conventions.\n\n- **Language**: Java 8+ (source/target = 1.8; CI builds on JDK 8, 11, 17, 21, 25 — JDK 17+ is recommended for local development)\n- **Build**: Maven 3.6.3 via `./mvnw` wrapper (project docs require 3.9+, but wrapper currently pins 3.6.3; both work)\n- **CI matrix**: JDK 8, 11, 17, 21, 25\n\n## Build & Test Commands\n\n```bash\n# Build (runs tests by default, per Maven/Apache convention)\n./mvnw clean install\n\n# Fast build without running tests\n./mvnw clean install -DskipTests\n\n# Run tests for the library modules only\n./mvnw clean package -pl fesod-common,fesod-shaded,fesod-sheet\n\n# Format check / auto-format\n./mvnw spotless:check\n./mvnw spotless:apply\n\n# Run tests by tag\n./mvnw test -Dtest.groups=unit          # fast unit tests only\n./mvnw test -Dtest.excludedGroups=fuzz  # exclude slow fuzz tests\n\n# Full install with javadoc (CI validation)\n./mvnw install -B -V\n./mvnw javadoc:javadoc\n```\n\n## Code Style & Conventions\n\n- **Formatter**: Palantir Java Format (enforced by Spotless, no checkstyle)\n- **Imports**: Static imports first, then regular imports; no unused imports (enforced by Spotless `importOrder` with `\\#|` separator)\n- **Indent**: 4 spaces\n- **License header**: ASF Apache 2.0 header required on all `.java`, `.xml`, `.yml`, `.toml` files. Header template at `tools/spotless/license-header.txt`; enforced by the Hawkeye workflow (`.github/workflows/license-check.yml`), not Spotless\n- **Lombok**: Allowed; config in `lombok.config` (`toString.callSuper = CALL`, `equalsAndHashCode.callSuper = CALL`)\n- **Commits**: English, format `type: description` (types: `fix`, `feat`, `refactor`, `test`, `docs`, `chore`, `style`, `dependency`)\n\n## Module Structure\n\n```\n(root)                 # Root POM (artifactId: fesod-parent), dependency & plugin management\n├── fesod-common/      # Zero-dependency utilities (org.apache.fesod.common.util)\n├── fesod-shaded/      # Relocated Spring ASM/cglib (org.apache.fesod.shaded)\n├── fesod-bom/         # BOM for downstream consumers\n└── fesod-sheet/       # Core library: read/write XLS/XLSX/CSV via POI\n    ├── src/main/java/org/apache/fesod/sheet/\n    │   ├── FesodSheet.java    # Main entry: FesodSheet.read() / FesodSheet.write()\n    │   ├── analysis/          # Read pipeline (v03=XLS BIFF, v07=XLSX SAX, csv)\n    │   ├── write/             # Write pipeline (builder, executor, handler chains)\n    │   ├── metadata/          # Data models, builders, csv/ property/\n    │   ├── converters/        # Type conversion framework (by Java type)\n    │   └── util/              # DateUtils, NumberUtils, WorkBookUtil, etc.\n    └── src/test/java/org/apache/fesod/sheet/\n        └── testkit/           # Test infrastructure (NOT a separate module)\n            ├── Tags.java      # @Tag constants: unit, round-trip, read, write, format, fuzz\n            ├── base/          # AbstractExcelTest (round-trip base)\n            ├── assertions/    # ExcelAssertions fluent API\n            └── builders/      # TestDataBuilder\n\n```\n\n## Testing Conventions\n\n- **JUnit 5** with `PER_CLASS` lifecycle and `ReplaceUnderscores` display name generator (configured globally in `fesod-sheet/src/test/resources/junit-platform.properties`, not via per-class annotations)\n- **Tags** (use `@Tag(Tags.XXX)`):\n  - `unit` — pure logic, no file I/O\n  - `round-trip` — write-then-read via `AbstractExcelTest`\n  - `read` / `write` — single-direction tests\n  - `format` — CSV/charset/date format tests\n  - `fuzz` — Jazzer property-based (slow, excluded in PR CI)\n- **Real-file tests**: Prefer `AbstractExcelTest.createTempFile()` + `ExcelAssertions` for integration tests\n- **Test data**: Use `TestDataBuilder.simpleData(n)` or model classes in `testkit/models/`\n\n## CI Checks (must pass before merge)\n\n1. `spotless:check` — format\n2. License header (hawkeye)\n3. Multi-JDK test matrix (8/11/17/21/25)\n4. `mvn install` + `mvn javadoc:javadoc`\n5. CodeQL security scan\n",".cursor/mcp.json":"# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/apache/fesod/HEAD/.cursor/mcp.json)",".claude-plugin/marketplace.json":"# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/apache/fesod/HEAD/.claude-plugin/marketplace.json)",".claude-plugin/plugin.json":"# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/apache/fesod/HEAD/.claude-plugin/plugin.json)"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/apache/fesod/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"# Apache Fesod (Incubating) AI Agent Instructions\n\nThis file provides guidance for AI coding agents working with the Apache Fesod (Incubating) codebase.\n\n## Project Overview\n\nApache Fesod (Incubating) is a Java library for processing spreadsheets (XLS/XLSX/CSV) without OOM, derived from Alibaba EasyExcel. It uses Apache POI under the hood with streaming SAX-based reading. The project is an Apache incubator project and must follow ASF conventions.\n\n- **Language**: Java 8+ (source/target = 1.8; CI builds on JDK 8, 11, 17, 21, 25 — JDK 17+ is recommended for local development)\n- **Build**: Maven 3.6.3 via `./mvnw` wrapper (project docs require 3.9+, but wrapper currently pins 3.6.3; both work)\n- **CI matrix**: JDK 8, 11, 17, 21, 25\n\n## Build & Test Commands\n\n```bash\n# Build (runs tests by default, per Maven/Apache convention)\n./mvnw clean install\n\n# Fast build without running tests\n./mvnw clean install -DskipTests\n\n# Run tests for the library modules only\n./mvnw clean package -pl fesod-common,fesod-shaded,fesod-sheet\n\n# Format check / auto-format\n./mvnw spotless:check\n./mvnw spotless:apply\n\n# Run tests by tag\n./mvnw test -Dtest.groups=unit          # fast unit tests only\n./mvnw test -Dtest.excludedGroups=fuzz  # exclude slow fuzz tests\n\n# Full install with javadoc (CI validation)\n./mvnw install -B -V\n./mvnw javadoc:javadoc\n```\n\n## Code Style & Conventions\n\n- **Formatter**: Palantir Java Format (enforced by Spotless, no checkstyle)\n- **Imports**: Static imports first, then regular imports; no unused imports (enforced by Spotless `importOrder` with `\\#|` separator)\n- **Indent**: 4 spaces\n- **License header**: ASF Apache 2.0 header required on all `.java`, `.xml`, `.yml`, `.toml` files. Header template at `tools/spotless/license-header.txt`; enforced by the Hawkeye workflow (`.github/workflows/license-check.yml`), not Spotless\n- **Lombok**: Allowed; config in `lombok.config` (`toString.callSuper = CALL`, `equalsAndHashCode.callSuper = CALL`)\n- **Commits**: English, format `type: description` (types: `fix`, `feat`, `refactor`, `test`, `docs`, `chore`, `style`, `dependency`)\n\n## Module Structure\n\n```\n(root)                 # Root POM (artifactId: fesod-parent), dependency & plugin management\n├── fesod-common/      # Zero-dependency utilities (org.apache.fesod.common.util)\n├── fesod-shaded/      # Relocated Spring ASM/cglib (org.apache.fesod.shaded)\n├── fesod-bom/         # BOM for downstream consumers\n└── fesod-sheet/       # Core library: read/write XLS/XLSX/CSV via POI\n    ├── src/main/java/org/apache/fesod/sheet/\n    │   ├── FesodSheet.java    # Main entry: FesodSheet.read() / FesodSheet.write()\n    │   ├── analysis/          # Read pipeline (v03=XLS BIFF, v07=XLSX SAX, csv)\n    │   ├── write/             # Write pipeline (builder, executor, handler chains)\n    │   ├── metadata/          # Data models, builders, csv/ property/\n    │   ├── converters/        # Type conversion framework (by Java type)\n    │   └── util/              # DateUtils, NumberUtils, WorkBookUtil, etc.\n    └── src/test/java/org/apache/fesod/sheet/\n        └── testkit/           # Test infrastructure (NOT a separate module)\n            ├── Tags.java      # @Tag constants: unit, round-trip, read, write, format, fuzz\n            ├── base/          # AbstractExcelTest (round-trip base)\n            ├── assertions/    # ExcelAssertions fluent API\n            └── builders/      # TestDataBuilder\n\n```\n\n## Testing Conventions\n\n- **JUnit 5** with `PER_CLASS` lifecycle and `ReplaceUnderscores` display name generator (configured globally in `fesod-sheet/src/test/resources/junit-platform.properties`, not via per-class annotations)\n- **Tags** (use `@Tag(Tags.XXX)`):\n  - `unit` — pure logic, no file I/O\n  - `round-trip` — write-then-read via `AbstractExcelTest`\n  - `read` / `write` — single-direction tests\n  - `format` — CSV/charset/date format tests\n  - `fuzz` — Jazzer property-based (slow, excluded in PR CI)\n- **Real-file tests**: Prefer `AbstractExcelTest.createTempFile()` + `ExcelAssertions` for integration tests\n- **Test data**: Use `TestDataBuilder.simpleData(n)` or model classes in `testkit/models/`\n\n## CI Checks (must pass before merge)\n\n1. `spotless:check` — format\n2. License header (hawkeye)\n3. Multi-JDK test matrix (8/11/17/21/25)\n4. `mvn install` + `mvn javadoc:javadoc`\n5. CodeQL security scan\n","isInternal":false,"tokens":1208,"sizeBytes":4466},{"name":"marketplace.json","path":".claude-plugin/marketplace.json","rawUrl":"https://raw.githubusercontent.com/apache/fesod/HEAD/.claude-plugin/marketplace.json","title":"Claude Plugin Marketplace Catalog","category":"marketplace","format":"json","content":"# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/apache/fesod/HEAD/.claude-plugin/marketplace.json)","tokens":300,"sizeBytes":191},{"name":"plugin.json","path":".claude-plugin/plugin.json","rawUrl":"https://raw.githubusercontent.com/apache/fesod/HEAD/.claude-plugin/plugin.json","title":"claude-plugin Plugin Manifest","category":"plugin-manifest","format":"json","content":"# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/apache/fesod/HEAD/.claude-plugin/plugin.json)","tokens":300,"sizeBytes":177},{"name":"mcp.json","path":".cursor/mcp.json","rawUrl":"https://raw.githubusercontent.com/apache/fesod/HEAD/.cursor/mcp.json","title":"Model Context Protocol (MCP) Configuration","category":"mcp-config","format":"json","content":"# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/apache/fesod/HEAD/.cursor/mcp.json)","tokens":300,"sizeBytes":170}],"systemPromptSnippet":"<yakaai_skills repo=\"apache/fesod\">\n<!-- File: AGENTS.md (Tokens: ~1208 | Category: root-instruction) -->\n# Apache Fesod (Incubating) AI Agent Instructions\n\nThis file provides guidance for AI coding agents working with the Apache Fesod (Incubating) codebase.\n\n## Project Overview\n\nApache Fesod (Incubating) is a Java library for processing spreadsheets (XLS/XLSX/CSV) without OOM, derived from Alibaba EasyExcel. It uses Apache POI under the hood with streaming SAX-based reading. The project is an Apache incubator project and must follow ASF conventions.\n\n- **Language**: Java 8+ (source/target = 1.8; CI builds on JDK 8, 11, 17, 21, 25 — JDK 17+ is recommended for local development)\n- **Build**: Maven 3.6.3 via `./mvnw` wrapper (project docs require 3.9+, but wrapper currently pins 3.6.3; both work)\n- **CI matrix**: JDK 8, 11, 17, 21, 25\n\n## Build & Test Commands\n\n```bash\n# Build (runs tests by default, per Maven/Apache convention)\n./mvnw clean install\n\n# Fast build without running tests\n./mvnw clean install -DskipTests\n\n# Run tests for the library modules only\n./mvnw clean package -pl fesod-common,fesod-shaded,fesod-sheet\n\n# Format check / auto-format\n./mvnw spotless:check\n./mvnw spotless:apply\n\n# Run tests by tag\n./mvnw test -Dtest.groups=unit          # fast unit tests only\n./mvnw test -Dtest.excludedGroups=fuzz  # exclude slow fuzz tests\n\n# Full install with javadoc (CI validation)\n./mvnw install -B -V\n./mvnw javadoc:javadoc\n```\n\n## Code Style & Conventions\n\n- **Formatter**: Palantir Java Format (enforced by Spotless, no checkstyle)\n- **Imports**: Static imports first, then regular imports; no unused imports (enforced by Spotless `importOrder` with `\\#|` separator)\n- **Indent**: 4 spaces\n- **License header**: ASF Apache 2.0 header required on all `.java`, `.xml`, `.yml`, `.toml` files. Header template at `tools/spotless/license-header.txt`; enforced by the Hawkeye workflow (`.github/workflows/license-check.yml`), not Spotless\n- **Lombok**: Allowed; config in `lombok.config` (`toString.callSuper = CALL`, `equalsAndHashCode.callSuper = CALL`)\n- **Commits**: English, format `type: description` (types: `fix`, `feat`, `refactor`, `test`, `docs`, `chore`, `style`, `dependency`)\n\n## Module Structure\n\n```\n(root)                 # Root POM (artifactId: fesod-parent), dependency & plugin management\n├── fesod-common/      # Zero-dependency utilities (org.apache.fesod.common.util)\n├── fesod-shaded/      # Relocated Spring ASM/cglib (org.apache.fesod.shaded)\n├── fesod-bom/         # BOM for downstream consumers\n└── fesod-sheet/       # Core library: read/write XLS/XLSX/CSV via POI\n    ├── src/main/java/org/apache/fesod/sheet/\n    │   ├── FesodSheet.java    # Main entry: FesodSheet.read() / FesodSheet.write()\n    │   ├── analysis/          # Read pipeline (v03=XLS BIFF, v07=XLSX SAX, csv)\n    │   ├── write/             # Write pipeline (builder, executor, handler chains)\n    │   ├── metadata/          # Data models, builders, csv/ property/\n    │   ├── converters/        # Type conversion framework (by Java type)\n    │   └── util/              # DateUtils, NumberUtils, WorkBookUtil, etc.\n    └── src/test/java/org/apache/fesod/sheet/\n        └── testkit/           # Test infrastructure (NOT a separate module)\n            ├── Tags.java      # @Tag constants: unit, round-trip, read, write, format, fuzz\n            ├── base/          # AbstractExcelTest (round-trip base)\n            ├── assertions/    # ExcelAssertions fluent API\n            └── builders/      # TestDataBuilder\n\n```\n\n## Testing Conventions\n\n- **JUnit 5** with `PER_CLASS` lifecycle and `ReplaceUnderscores` display name generator (configured globally in `fesod-sheet/src/test/resources/junit-platform.properties`, not via per-class annotations)\n- **Tags** (use `@Tag(Tags.XXX)`):\n  - `unit` — pure logic, no file I/O\n  - `round-trip` — write-then-read via `AbstractExcelTest`\n  - `read` / `write` — single-direction tests\n  - `format` — CSV/charset/date format tests\n  - `fuzz` — Jazzer property-based (slow, excluded in PR CI)\n- **Real-file tests**: Prefer `AbstractExcelTest.createTempFile()` + `ExcelAssertions` for integration tests\n- **Test data**: Use `TestDataBuilder.simpleData(n)` or model classes in `testkit/models/`\n\n## CI Checks (must pass before merge)\n\n1. `spotless:check` — format\n2. License header (hawkeye)\n3. Multi-JDK test matrix (8/11/17/21/25)\n4. `mvn install` + `mvn javadoc:javadoc`\n5. CodeQL security scan\n\n<!-- File: .claude-plugin/marketplace.json (Tokens: ~300 | Category: marketplace) -->\n# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/apache/fesod/HEAD/.claude-plugin/marketplace.json)\n\n<!-- File: .claude-plugin/plugin.json (Tokens: ~300 | Category: plugin-manifest) -->\n# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/apache/fesod/HEAD/.claude-plugin/plugin.json)\n\n<!-- File: .cursor/mcp.json (Tokens: ~300 | Category: mcp-config) -->\n# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/apache/fesod/HEAD/.cursor/mcp.json)\n</yakaai_skills>"}