Skip to content

Update pack #3

Merged
spazyCZ merged 10 commits intomainfrom
test
Feb 20, 2026
Merged

Update pack #3
spazyCZ merged 10 commits intomainfrom
test

Conversation

@spazyCZ
Copy link
Copy Markdown
Owner

@spazyCZ spazyCZ commented Feb 20, 2026

No description provided.

…m-cli commands

- Added license information to package-lock.json.
- Updated pyproject.toml to ignore additional unused argument warnings.
- Improved type hints in various aam-cli command functions and adapters for better clarity and type safety.
- Refactored function signatures to specify return types and argument types more accurately across multiple files.
- Modified expected command list in `test_main.py` to include new commands and remove outdated ones.
- Updated assertions in `test_mcp_integration.py` to reflect the correct number of tools (29) based on the latest specifications.
- Adjusted assertions in `test_mcp_server.py` to verify the correct number of tools (17 for read-only and 29 for writable) in accordance with updated specifications.
… assertions

- Included `types-PyYAML` version 6.0.0 in the development dependencies of `pyproject.toml`.
- Updated the assertion in `test_main.py` to check for the existence of the archive file on disk instead of checking the output directly.
… and default sources changes

- Added detailed documentation for the built-in Model Context Protocol (MCP) server, including usage instructions and available tools.
- Updated the README and CLI documentation to reflect the removal of the `cursor/community-skills` source, now listing 4 curated community repositories.
- Enhanced user guidance on package name validation and error messaging in the CLI commands.
- Adjusted test cases to ensure consistency with the updated default sources and MCP functionalities.
- Changed the expected status from "pass" to "warn" for the scenario where the project config does not exist.
- Added a check to ensure the warning message includes "not found, using defaults" for clarity in test feedback.
…rt discrete agent and instruction files. Update deployment mappings, configuration options, and examples to reflect new file structures. Remove marker-based merging for agents and instructions, ensuring clear separation of user content and AAM-managed content. Enhance clarity and organization throughout the documentation.
Copilot AI review requested due to automatic review settings February 20, 2026 00:33
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR expands AAM’s documentation and CLI capabilities around cross-platform workflows (MCP + conversion), updates default community sources, and adjusts Copilot/Claude deployment behavior to use discrete agent/instruction files where applicable.

Changes:

  • Add the aam convert CLI command, conversion utilities, and unit tests/spec documenting conversion behavior.
  • Update platform docs (Copilot/Claude) and user docs navigation; add MCP Interface documentation.
  • Update curated default sources (now 4) and propagate those source-name changes across docs and tests; improve package-name validation messaging.

Reviewed changes

Copilot reviewed 73 out of 75 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
package-lock.json Adds root license metadata.
docs/user_docs/mkdocs.yml Adds new tutorial/CLI/MCP nav entries.
docs/user_docs/docs/tutorials/skill-consolidation.md New tutorial covering multi-source skill consolidation into a package.
docs/user_docs/docs/tutorials/install-from-sources.md New tutorial for initializing sources and installing skills from sources.
docs/user_docs/docs/tutorials/index.md Updates tutorial landing page to include new tutorials.
docs/user_docs/docs/troubleshooting/migration.md Documents migration via aam convert and updates Cursor→Claude steps.
docs/user_docs/docs/platforms/index.md Adds section describing aam convert for platform migration.
docs/user_docs/docs/platforms/copilot.md Updates Copilot platform behavior/docs to discrete agents/instructions layout.
docs/user_docs/docs/platforms/claude.md Updates Claude platform behavior/docs: agents as files, instructions merged into CLAUDE.md.
docs/user_docs/docs/mcp/index.md New MCP Interface documentation (server, tools, resources, safety model).
docs/user_docs/docs/index.md Adds MCP entry point and expands homepage sections (tools/prereqs, MCP overview).
docs/user_docs/docs/concepts/platform-adapters.md Updates adapter concept docs to reflect discrete files for Copilot/Claude agents.
docs/user_docs/docs/concepts/git-sources.md Updates the list of default git sources.
docs/user_docs/docs/cli/source-enable-defaults.md Updates default-source docs from 5→4 and new source names/paths.
docs/user_docs/docs/cli/list.md Updates example output to reflect new source naming.
docs/user_docs/docs/cli/index.md Adds aam convert under Utilities.
docs/user_docs/docs/cli/convert.md New CLI reference for aam convert.
docs/specs/SPEC-convert-command.md New detailed spec for conversion feature.
docs/USER_GUIDE.md Adds a new section for aam convert and updates MCP tool counts/examples.
docs/DESIGN.md Documents convert and updates platform mappings/tool lists/detection notes.
apps/aam-cli/tests/unit/test_unit_upgrade.py Removes unused imports (test cleanup).
apps/aam-cli/tests/unit/test_unit_outdated.py Cleans imports.
apps/aam-cli/tests/unit/test_unit_mcp_init_tools.py Updates expected default source names in tests.
apps/aam-cli/tests/unit/test_unit_install_from_source.py Cleans imports.
apps/aam-cli/tests/unit/test_unit_default_sources.py Updates expectations from 5→4 default sources.
apps/aam-cli/tests/unit/test_unit_client_init.py Updates expected registered sources in init tests.
apps/aam-cli/tests/unit/test_services_search.py Updates source names in tests and cleans imports.
apps/aam-cli/tests/unit/test_services_recommend.py Cleans imports.
apps/aam-cli/tests/unit/test_services_package.py Typing improvements + patch structure cleanup.
apps/aam-cli/tests/unit/test_services_doctor.py Updates expected statuses/messages for missing project config.
apps/aam-cli/tests/unit/test_services_config.py Cleans imports and simplifies patch nesting.
apps/aam-cli/tests/unit/test_mcp_tools_write.py Import ordering + patch nesting cleanup.
apps/aam-cli/tests/unit/test_mcp_server.py Updates expected tool counts (read-only/write-enabled).
apps/aam-cli/tests/unit/test_mcp_resources.py Import ordering cleanup.
apps/aam-cli/tests/unit/test_convert.py New unit tests covering conversion and CLI behavior.
apps/aam-cli/tests/unit/test_commands_search.py Import cleanup and ordering.
apps/aam-cli/tests/unit/test_adapters_factory.py Updates adapter tests for discrete file deployment behavior.
apps/aam-cli/tests/test_main.py Updates command registration expectations and adds naming suggestion tests.
apps/aam-cli/tests/integration/test_mcp_integration.py Updates expected MCP tool counts.
apps/aam-cli/src/aam_cli/utils/naming.py Adds suggestion + improved invalid-name error formatting.
apps/aam-cli/src/aam_cli/services/source_service.py Updates DEFAULT_SOURCES (4, canonical URLs) + typing improvements.
apps/aam-cli/src/aam_cli/services/recommend_service.py Minor loop var cleanup.
apps/aam-cli/src/aam_cli/services/install_service.py Import refactor/cleanup.
apps/aam-cli/src/aam_cli/services/init_service.py Improves invalid package-name error message.
apps/aam-cli/src/aam_cli/services/doctor_service.py Adjusts config-file check severity + adds suggestion when registries missing.
apps/aam-cli/src/aam_cli/services/client_init_service.py Minor typing cleanup.
apps/aam-cli/src/aam_cli/mcp/tools_read.py Minor typing cleanup and import ordering.
apps/aam-cli/src/aam_cli/mcp/resources.py Minor typing cleanup for returned values.
apps/aam-cli/src/aam_cli/main.py Registers convert command + typing improvements.
apps/aam-cli/src/aam_cli/core/workspace.py Adds explicit __all__ export list.
apps/aam-cli/src/aam_cli/converters/mappings.py New conversion mapping/constants module.
apps/aam-cli/src/aam_cli/converters/frontmatter.py New YAML frontmatter parse/generate utilities.
apps/aam-cli/src/aam_cli/converters/init.py New converters package init.
apps/aam-cli/src/aam_cli/commands/verify.py Improves typing of result dicts.
apps/aam-cli/src/aam_cli/commands/upgrade.py Typing improvements for upgrade flow.
apps/aam-cli/src/aam_cli/commands/uninstall.py Removes unused import.
apps/aam-cli/src/aam_cli/commands/source.py Typing improvements + docs string update (5→4).
apps/aam-cli/src/aam_cli/commands/show_package.py Tightens typing around frontmatter parsing.
apps/aam-cli/src/aam_cli/commands/pkg/create.py Improves help text for package name option.
apps/aam-cli/src/aam_cli/commands/outdated.py Typing improvements for outdated flow.
apps/aam-cli/src/aam_cli/commands/list_packages.py Typing and TYPE_CHECKING cleanup.
apps/aam-cli/src/aam_cli/commands/install.py Typing improvements and import ordering adjustments.
apps/aam-cli/src/aam_cli/commands/init_package.py Improves interactive prompts + better invalid-name messaging/typing.
apps/aam-cli/src/aam_cli/commands/diff.py Tightens typing for diff result structures.
apps/aam-cli/src/aam_cli/commands/create_package.py Improves invalid-name messaging + typing improvements.
apps/aam-cli/src/aam_cli/commands/convert.py New aam convert command implementation and output formatting.
apps/aam-cli/src/aam_cli/adapters/copilot.py Switches Copilot agent/instruction deployment to discrete files under .github/.
apps/aam-cli/src/aam_cli/adapters/codex.py Minor typing improvement for prompt_file.
apps/aam-cli/src/aam_cli/adapters/claude.py Switches Claude agent deployment to .claude/agents/; keeps instruction merging into CLAUDE.md.
apps/aam-cli/pyproject.toml Adds types-PyYAML and ruff ARG ignores.
apps/aam-cli/README.md Adds MCP server documentation and tool/resource lists.
README.md Updates default sources list (4) + adds MCP server section and updated deployment mapping.
.github/workflows/publish-pypi-test.yml Adds --verbose to Nx lint/test run for aam-cli.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

warning_lower = warning.lower()

for key, workaround in VERBOSE_WORKAROUNDS.items():
if key.replace("_", " ").replace("removed", "").strip() in warning_lower:
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

_print_verbose_workaround() matches warning strings case-sensitively, but warnings are lowercased (e.g. 'alwaysApply field dropped...'), so verbose workarounds won't print. Consider normalizing both sides (e.g. compare lowercased keys, or map warning categories explicitly) so --verbose consistently shows the intended workaround text.

Suggested change
if key.replace("_", " ").replace("removed", "").strip() in warning_lower:
normalized_key = (
key.replace("_", " ")
.replace("removed", "")
.strip()
.lower()
)
if normalized_key and normalized_key in warning_lower:

Copilot uses AI. Check for mistakes.
Comment on lines +56 to +63
# Find the closing ---
end_idx = stripped.find("---", 3)
if end_idx == -1:
return {}, text

yaml_block = stripped[3:end_idx].strip()
body = stripped[end_idx + 3:].lstrip("\n")

Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

parse_frontmatter() finds the closing '---' delimiter via stripped.find('---', 3), which can terminate early if '---' appears inside YAML values or body text. This can mis-parse frontmatter for otherwise valid files. Consider parsing by lines and treating only a line that equals '---' as the closing delimiter (or use a small state machine) to avoid false matches.

Suggested change
# Find the closing ---
end_idx = stripped.find("---", 3)
if end_idx == -1:
return {}, text
yaml_block = stripped[3:end_idx].strip()
body = stripped[end_idx + 3:].lstrip("\n")
# Split into lines and find the closing '---' on its own line
lines = stripped.splitlines(keepends=True)
if not lines:
return {}, text
closing_idx: int | None = None
for i, line in enumerate(lines[1:], start=1):
if line.strip() == "---":
closing_idx = i
break
if closing_idx is None:
return {}, text
# YAML block is everything between the opening and closing delimiters
yaml_block = "".join(lines[1:closing_idx]).strip()
# Body is everything after the closing delimiter
body = "".join(lines[closing_idx + 1 :]).lstrip("\n")

Copilot uses AI. Check for mistakes.
Comment on lines +14 to +17
AAM -->|reads/writes| Config["~/.aam/config.yaml"]
AAM -->|manages| Packages["~/.aam/packages/"]
AAM -->|clones/fetches| Sources["~/.aam/sources-cache/"]

Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The MCP overview diagram says sources are stored in ~/.aam/sources-cache/, but other docs (and the CLI output examples) refer to ~/.aam/cache/git/.... This mismatch is likely to confuse users configuring MCP workflows; please align the path in this doc with the actual cache directory name used by AAM.

Copilot uses AI. Check for mistakes.
Comment on lines 790 to 796
Instructions:
─ instructions/*.md (AAM convention)
─ .cursor/rules/*.mdc (Cursor rules, excluding agent-* rules)
─ CLAUDE.md (Claude instructions)
─ .github/copilot-instructions.md (Copilot instructions)
─ .github/instructions/*.instructions.md (Copilot instructions)
─ AGENTS.md (Codex instructions)
```
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DESIGN.md updates the Copilot detection pattern to only .github/instructions/*.instructions.md, but the current scanner still detects .github/copilot-instructions.md as a Copilot instruction file. Either include both patterns here for backward compatibility, or update the scanner accordingly, so the design doc matches actual behavior.

Copilot uses AI. Check for mistakes.
Comment on lines +192 to 201
**Deployed to** `.github/instructions/python-standards.instructions.md`:

```markdown
<!-- BEGIN AAM: python-standards instruction -->
---
name: python-standards
description: "Python coding standards"
scope: project
---

# Python Coding Standards
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the Copilot instruction example, the frontmatter uses scope: project, but elsewhere in this PR (SPEC-convert-command and convert docs) Copilot instruction metadata is described in terms of applyTo (glob-based conditional scoping). If scope isn't actually consumed by Copilot, consider switching this example to applyTo (or clarify how/why AAM emits scope for Copilot instruction files) to avoid misleading users.

Copilot uses AI. Check for mistakes.
@spazyCZ
Copy link
Copy Markdown
Owner Author

spazyCZ commented Feb 20, 2026

@copilot open a new pull request to apply changes based on the comments in this thread

Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 20, 2026

@spazyCZ I've opened a new pull request, #4, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI and others added 2 commits February 20, 2026 00:51
…c paths and patterns

Co-authored-by: spazyCZ <22116740+spazyCZ@users.noreply.github.com>
Fix frontmatter parsing, verbose workaround matching, and doc alignment
@spazyCZ spazyCZ merged commit 5aa6c9a into main Feb 20, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants