Releases: airscripts/agentskill
Releases · airscripts/agentskill
0.5.0
[email protected] | 2026-04-27
Added
scripts/lib/references.py— reference source, document, load result, and metadata modelsload_local_reference()/load_local_references()— load AGENTS.md from local directoriesload_remote_reference()/load_remote_references()— load AGENTS.md from remote repos via shallow clone_run_git()— subprocess helper with 60s timeout and error capturescripts/lib/reference_adaptation.py— reference adaptation engine with heuristic classificationReferenceSection,AdaptedConvention,ReferenceAdaptationResult— frozen dataclasses for section splitting and convention classificationsplit_markdown_sections()— heading-based Markdown section extractionadapt_reference()/adapt_references()— classify conventions as applicable, mismatched, uncertain, or ignored- Category detection with priority ordering: directory_structure, testing, formatter, linter, type_checker, git
- Language/tool extraction and target analysis comparison
- Directory path matching against scan tree
scripts/lib/reference_questions.py— gap detection and targeted question generationReferenceQuestionmodel with section, question, reason, category, source, blocking, optionsgenerate_reference_questions()— produce targeted questions from uncertain and mismatched conventions- Selective question generation: irrelevant mismatches filtered, ecosystem-aware relevance checks
- Conflict detection across multiple references proposing different conventions
- Question deduplication and deterministic ordering
scripts/lib/reference_initialization.py— empty-project initialization from referencesis_empty_target()— detect empty or near-empty target repositoriesbuild_reference_metadata()— build deterministic metadata from loaded documentsrender_reference_metadata_block()— render metadata as Markdown HTML comment with JSONReferenceInitializationResult— structured result with adapted references, questions, metadata, warningsinitialize_from_references()— end-to-end initialization flowsuccessful_reference_documents()— filter load results to successful documentsAGENTSKILL_VERSIONconstant
0.4.0
[email protected] | 2026-04-27
Added
scripts/lib/parsers.py— shared TOML and YAML parser loading with optional dependency fallbackload_toml/load_yaml— strict parsers that raiseParserUnavailableErrorwhen deps are missingload_toml_safe/load_yaml_safe— graceful parsers returning{}on any error- Comprehensive config parsing tests with real-world fixtures for Python, JS, Go, and Rust
Changed
- Replaced custom TOML parsing in
config.pywithtomllib/tomlivia shared parser - Replaced custom YAML parsing in
config.pywithPyYAMLsafe_loadvia shared parser - Moved
tomliandPyYAMLto optional[parsers]dependency group
Removed
_parse_toml,_parse_toml_value,_split_toml_array— replaced by real TOML parser_parse_yaml_simple,_yaml_scalar— replaced by real YAML parser
0.3.0
[email protected] | 2026-04-26
Added
- Logging infrastructure —
scripts/lib/logging_utils.pywith configurable log level and exception capture - Output path validation —
--outpaths are validated; parent directories are created automatically - Per-analyzer timeout logging — runner logs when an analyzer exceeds its deadline
write_outputexception handling — captures and logs JSON serialization errors
Changed
_runingit.pynow returns stderr alongside stdout, and logs command failuresrun_alllogs per-analyzer failures with tracebacks instead of silently swallowing them
0.2.0
[email protected] | 2026-04-26
Added
- GitHub Actions CI workflows — build, test, verify, and main branch checks
tomliruntime dependency for Python < 3.11 TOML support
Changed
- Bumped minimum Python version to 3.10
- Switched build backend to
setuptools.build_meta - Expanded
py-modulesto includeclifor correct CLI invocation
Fixed
- Import order error flagged by ruff
- CLI invocation error caused by missing
py-modulesdeclaration
0.1.0
[email protected] | 2026-04-26
Added
- Initial release of agentskill
analyzecommand — run all analyzers and synthesize anAGENTS.mdreportscananalyzer — directory tree mapping, file inventory, suggested read ordermeasureanalyzer — exact indentation, line length percentiles, blank line distributionsconfiganalyzer — formatter, linter, and type-checker detection with config excerptsgitanalyzer — commit prefixes, branch naming, merge strategy, and signing detectiongraphanalyzer — internal import graph, circular dependencies, most-depended modulessymbolsanalyzer — symbol name extraction, naming pattern clustering, affix detectiontestsanalyzer — test-to-source mapping, framework detection, fixture extraction- Parallel analyzer execution via
ThreadPoolExecutor - Pretty-printed and machine-readable JSON output modes (
--pretty,--json) --outflag to write report to a file--languageflag to override auto-detected language- Language-agnostic analysis engine supporting Python, JavaScript/TypeScript, Rust, Go, and others
- Multiple output example formats:
SINGLE_LANGUAGE.md,MULTI_LANGUAGE.md,MONOREPO.md SYSTEM.md— behavioral spec for the synthesis stepSKILL.md— OpenClaw AgentSkill manifestAGENTS.md— self-documented analysis rules- Full test suite with pytest covering all modules
pyproject.tomlwithproject.scriptsentry points- Development dependencies:
ruff,pytest