@laitszkin/apollo-toolkit 2.11.0 → 2.11.1

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.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,13 @@ All notable changes to this repository are documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [v2.11.1] - 2026-03-23
8
+
9
+ ### Changed
10
+ - Add a dedicated GitHub Actions validation job for `SKILL.md` description length checks.
11
+ - Enforce a maximum `description` length of 1024 characters in `scripts/validate_skill_frontmatter.py`.
12
+ - Shorten `enhance-existing-features` metadata so its `description` stays within the loader limit without changing intent.
13
+
7
14
  ## [v2.11.0] - 2026-03-23
8
15
 
9
16
  ### Added
@@ -1,21 +1,15 @@
1
1
  ---
2
2
  name: enhance-existing-features
3
3
  description: >-
4
- Build and extend brownfield features in an existing codebase. Always explore
5
- the codebase first, then decide from the user's requested change whether
6
- specs (`spec.md`/`tasks.md`/`checklist.md`) are required before coding. When
7
- specs are required, depend on `generate-spec` for the shared planning,
8
- clarification, approval, and backfill workflow. If a spec set exists and is
9
- approved, complete all planned tasks and applicable checklist items before
10
- yielding unless the user changes scope or an external blocker prevents safe
11
- completion. Even when specs are not
12
- required, still add and run related tests for
13
- unit/property-based/user-critical integration chain/E2E coverage. Tests must
14
- not stop at happy-path validation: for business-logic changes require
15
- property-based testing unless explicitly `N/A` with reason, design
16
- adversarial/regression/authorization/idempotency/concurrency coverage where
17
- relevant, use mocks for external services in logic chains, and verify
18
- meaningful business outcomes rather than smoke-only success.
4
+ Extend brownfield features by exploring the codebase first, then deciding
5
+ whether shared specs (`spec.md`/`tasks.md`/`checklist.md`) are required
6
+ before coding. When specs are needed, use `generate-spec` for planning,
7
+ clarification, approval, and backfill, and complete approved in-scope tasks
8
+ before yielding unless scope changes or an external blocker prevents safe
9
+ completion. With or without specs, add and run relevant unit,
10
+ property-based, regression, integration, E2E, and adversarial tests as
11
+ applicable, use mocks for external services in logic chains, and verify
12
+ meaningful business outcomes instead of smoke-only success.
19
13
  ---
20
14
 
21
15
  # Enhance Existing Features
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@laitszkin/apollo-toolkit",
3
- "version": "2.11.0",
3
+ "version": "2.11.1",
4
4
  "description": "Apollo Toolkit npm installer for managed skill copying across Codex, OpenClaw, and Trae.",
5
5
  "license": "MIT",
6
6
  "author": "LaiTszKin",
@@ -11,6 +11,7 @@ import yaml
11
11
 
12
12
  NAME_PATTERN = re.compile(r"^[a-z0-9]+(?:-[a-z0-9]+)*$")
13
13
  REQUIRED_KEYS = {"name", "description"}
14
+ MAX_DESCRIPTION_LENGTH = 1024
14
15
 
15
16
 
16
17
  def repo_root() -> Path:
@@ -81,6 +82,11 @@ def validate_skill(skill_dir: Path) -> list[str]:
81
82
  description = frontmatter.get("description")
82
83
  if not isinstance(description, str) or not description.strip():
83
84
  errors.append(f"{skill_md}: 'description' must be a non-empty string.")
85
+ elif len(description) > MAX_DESCRIPTION_LENGTH:
86
+ errors.append(
87
+ f"{skill_md}: invalid description: exceeds maximum length of "
88
+ f"{MAX_DESCRIPTION_LENGTH} characters"
89
+ )
84
90
 
85
91
  return errors
86
92