@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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
@@ -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
|
|