{"owner":"leoafarias","repo":"fvm","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md",".github/copilot-instructions.md"],"skills":{"AGENTS.md":"# FVM - Flutter Version Manager\n\nCLI tool for managing Flutter SDK versions per project.\n\n## Structure\n\n- `bin/main.dart`: CLI entry point\n- `lib/src/commands/`: CLI commands\n- `lib/src/services/`: Business logic (cache, flutter, git, project)\n- `lib/src/workflows/`: Multi-step orchestration\n- `lib/src/models/`: Data models (dart_mappable)\n- `test/`: Unit + integration tests\n\n## Commands\n\n```bash\ndart pub get                    # Install dependencies\ndart test                       # Unit tests\ndart run grinder integration-test  # Integration suite (needs Flutter)\ndart analyze --fatal-infos      # Analysis (must pass)\ndcm analyze lib                 # Code metrics\ndart run build_runner build --delete-conflicting-outputs  # Regenerate mappers\n```\n\n## Verification\n\nPre-commit hooks run automatically. Before pushing:\n1. `dart analyze --fatal-infos` passes\n2. `dcm analyze lib` passes\n3. `dart test` passes\n\nFor final review on changes that affect `GitService`, `FlutterService`,\n`EnsureCacheWorkflow`, install/use/global command behavior, prompt handling, or\nproject SDK references, also run the manual branch smoke test in\n`docs/pages/documentation/guides/manual-smoke-test.md`. It uses isolated temp `HOME`,\n`FVM_CACHE_PATH`, and `FVM_GIT_CACHE_PATH` values and includes cleanup guidance\nfor the temporary SDKs, git cache, project files, and config it creates.\n\n## Architecture\n\nCommands → Workflows → Services → Models\n\n- Services accessed via `FvmContext.get<T>()`\n- Workflows extend `Workflow` for multi-step operations\n- Models use `@MappableClass()` with `part 'name.mapper.dart';`\n\n## Critical Rules\n\n- NEVER bypass git hooks with `--no-verify`\n- YOU MUST run `build_runner build` after modifying `@MappableClass()` models\n- Integration tests require Flutter: run `dart run grinder test-setup` first\n\n## Gotchas\n\n- Release tool (`tool/release_tool/`) requires Dart >=3.8.0\n- Version format: `[fork/]version[@channel]` (e.g., `stable`, `3.24.0`, `custom-fork/3.24.0@beta`)\n\n## Documentation\n\nDeveloper docs live in `.context/docs/` and tracked guides under\n`docs/pages/documentation/guides/`. Reference for specific tasks:\n\n- @README.md - Project overview, release process\n- @CHANGELOG.md - Version history, breaking changes\n- @.github/workflows/README.md - CI/CD pipelines, deployment automation\n- @.context/docs/testing-methodology.md - Test patterns, TestFactory, mocking\n- @.context/docs/integration-tests.md - Real integration guardrails\n- @docs/pages/documentation/guides/manual-smoke-test.md - Isolated final smoke test for git cache, install/use, prompts, symlinks, Melos, VS Code, and cleanup\n- @.context/docs/version-parsing.md - Version parsing regex and logic\n- @.context/docs/v4-release-notes.md - v4.0 architecture changes, migration\n",".github/copilot-instructions.md":"# Copilot Instructions for `leoafarias/fvm`\n\n## Project overview\n- FVM is a Dart CLI that manages Flutter SDK versions per project.\n- Main architecture flow: **Commands → Workflows → Services → Models**.\n- Key paths:\n  - `bin/main.dart` (CLI entrypoint)\n  - `lib/src/commands/` (command handlers)\n  - `lib/src/workflows/` (multi-step orchestration)\n  - `lib/src/services/` (core business logic)\n  - `lib/src/models/` (data models, many generated with `dart_mappable`)\n  - `test/` (unit + integration tests)\n\n## First-run checklist for coding agents\n1. Read `AGENTS.md` and `.context/docs/README.md`.\n2. Install dependencies:\n   - Root: `dart pub get`\n   - Also check subprojects when touched:\n     - `fvm_mcp/`: `dart pub get`\n     - `tool/release_tool/`: `dart pub get` (requires Dart `>=3.8.0`)\n3. Before changing code, run baseline checks (if environment supports Dart):\n   - `dart analyze --fatal-infos`\n   - `dcm analyze lib`\n   - `dart test`\n4. After changes, re-run targeted checks first, then broader checks relevant to touched areas.\n\n## Build, test, and analysis commands\n- Root project:\n  - `dart pub get`\n  - `dart analyze --fatal-infos`\n  - `dcm analyze lib`\n  - `dart test`\n- Integration suite (Flutter required):\n  - `dart run grinder test-setup`\n  - `dart run grinder integration-test`\n- Mapper/codegen (required after editing `@MappableClass()` models):\n  - `dart run build_runner build --delete-conflicting-outputs`\n\n## Repository-specific conventions\n- Keep changes surgical: avoid broad refactors unless required by the issue.\n- Prefer existing testing utilities (`TestFactory`, `TestCommandRunner`) and patterns in `.context/docs/testing-methodology.md`.\n- Integration tests are heavyweight and network-sensitive; prefer unit/targeted tests first.\n- Release tooling is separate under `tool/release_tool/` and uses a newer Dart SDK than the main repo.\n\n## CI and workflow context\n- Main validation workflow: `.github/workflows/test.yml`.\n- `test.yml` ignores docs-only changes (`**/*.md`), so editing this file alone should not trigger the heavy test workflow.\n- CI includes fallback install logic for DCM:\n  - If `dcm` is unavailable, run `dart pub global activate dart_code_metrics` and add `$HOME/.pub-cache/bin` to `PATH`.\n\n## Errors encountered during onboarding and workarounds\n1. **Local command failure**: `dart: command not found`\n   - Seen when running `dart pub get`, `dart analyze --fatal-infos`, and `dart test` in this environment.\n   - Workaround: install/setup Dart before validation (CI uses `dart-lang/setup-dart`; locally ensure `dart --version` works, then rerun commands).\n2. **GitHub Actions log retrieval limitation for a failed run**:\n   - `get_workflow_run_logs_url` returned `404 Not Found`.\n   - `list_workflow_jobs`/`get_job_logs` returned zero jobs for that run.\n   - Workaround: inspect `get_workflow_run` metadata (run URL, branch, event) and use the Actions UI/run page for details when API log endpoints are unavailable.\n\n## High-value docs for deeper context\n- `README.md` (project/release overview)\n- `.github/workflows/README.md` (deployment/CI details)\n- `.context/docs/testing-methodology.md`\n- `.context/docs/integration-tests.md`\n- `.context/docs/version-parsing.md`\n- `.context/docs/v4-release-notes.md`\n"},"files":{"AGENTS.md":"# FVM - Flutter Version Manager\n\nCLI tool for managing Flutter SDK versions per project.\n\n## Structure\n\n- `bin/main.dart`: CLI entry point\n- `lib/src/commands/`: CLI commands\n- `lib/src/services/`: Business logic (cache, flutter, git, project)\n- `lib/src/workflows/`: Multi-step orchestration\n- `lib/src/models/`: Data models (dart_mappable)\n- `test/`: Unit + integration tests\n\n## Commands\n\n```bash\ndart pub get                    # Install dependencies\ndart test                       # Unit tests\ndart run grinder integration-test  # Integration suite (needs Flutter)\ndart analyze --fatal-infos      # Analysis (must pass)\ndcm analyze lib                 # Code metrics\ndart run build_runner build --delete-conflicting-outputs  # Regenerate mappers\n```\n\n## Verification\n\nPre-commit hooks run automatically. Before pushing:\n1. `dart analyze --fatal-infos` passes\n2. `dcm analyze lib` passes\n3. `dart test` passes\n\nFor final review on changes that affect `GitService`, `FlutterService`,\n`EnsureCacheWorkflow`, install/use/global command behavior, prompt handling, or\nproject SDK references, also run the manual branch smoke test in\n`docs/pages/documentation/guides/manual-smoke-test.md`. It uses isolated temp `HOME`,\n`FVM_CACHE_PATH`, and `FVM_GIT_CACHE_PATH` values and includes cleanup guidance\nfor the temporary SDKs, git cache, project files, and config it creates.\n\n## Architecture\n\nCommands → Workflows → Services → Models\n\n- Services accessed via `FvmContext.get<T>()`\n- Workflows extend `Workflow` for multi-step operations\n- Models use `@MappableClass()` with `part 'name.mapper.dart';`\n\n## Critical Rules\n\n- NEVER bypass git hooks with `--no-verify`\n- YOU MUST run `build_runner build` after modifying `@MappableClass()` models\n- Integration tests require Flutter: run `dart run grinder test-setup` first\n\n## Gotchas\n\n- Release tool (`tool/release_tool/`) requires Dart >=3.8.0\n- Version format: `[fork/]version[@channel]` (e.g., `stable`, `3.24.0`, `custom-fork/3.24.0@beta`)\n\n## Documentation\n\nDeveloper docs live in `.context/docs/` and tracked guides under\n`docs/pages/documentation/guides/`. Reference for specific tasks:\n\n- @README.md - Project overview, release process\n- @CHANGELOG.md - Version history, breaking changes\n- @.github/workflows/README.md - CI/CD pipelines, deployment automation\n- @.context/docs/testing-methodology.md - Test patterns, TestFactory, mocking\n- @.context/docs/integration-tests.md - Real integration guardrails\n- @docs/pages/documentation/guides/manual-smoke-test.md - Isolated final smoke test for git cache, install/use, prompts, symlinks, Melos, VS Code, and cleanup\n- @.context/docs/version-parsing.md - Version parsing regex and logic\n- @.context/docs/v4-release-notes.md - v4.0 architecture changes, migration\n",".github/copilot-instructions.md":"# Copilot Instructions for `leoafarias/fvm`\n\n## Project overview\n- FVM is a Dart CLI that manages Flutter SDK versions per project.\n- Main architecture flow: **Commands → Workflows → Services → Models**.\n- Key paths:\n  - `bin/main.dart` (CLI entrypoint)\n  - `lib/src/commands/` (command handlers)\n  - `lib/src/workflows/` (multi-step orchestration)\n  - `lib/src/services/` (core business logic)\n  - `lib/src/models/` (data models, many generated with `dart_mappable`)\n  - `test/` (unit + integration tests)\n\n## First-run checklist for coding agents\n1. Read `AGENTS.md` and `.context/docs/README.md`.\n2. Install dependencies:\n   - Root: `dart pub get`\n   - Also check subprojects when touched:\n     - `fvm_mcp/`: `dart pub get`\n     - `tool/release_tool/`: `dart pub get` (requires Dart `>=3.8.0`)\n3. Before changing code, run baseline checks (if environment supports Dart):\n   - `dart analyze --fatal-infos`\n   - `dcm analyze lib`\n   - `dart test`\n4. After changes, re-run targeted checks first, then broader checks relevant to touched areas.\n\n## Build, test, and analysis commands\n- Root project:\n  - `dart pub get`\n  - `dart analyze --fatal-infos`\n  - `dcm analyze lib`\n  - `dart test`\n- Integration suite (Flutter required):\n  - `dart run grinder test-setup`\n  - `dart run grinder integration-test`\n- Mapper/codegen (required after editing `@MappableClass()` models):\n  - `dart run build_runner build --delete-conflicting-outputs`\n\n## Repository-specific conventions\n- Keep changes surgical: avoid broad refactors unless required by the issue.\n- Prefer existing testing utilities (`TestFactory`, `TestCommandRunner`) and patterns in `.context/docs/testing-methodology.md`.\n- Integration tests are heavyweight and network-sensitive; prefer unit/targeted tests first.\n- Release tooling is separate under `tool/release_tool/` and uses a newer Dart SDK than the main repo.\n\n## CI and workflow context\n- Main validation workflow: `.github/workflows/test.yml`.\n- `test.yml` ignores docs-only changes (`**/*.md`), so editing this file alone should not trigger the heavy test workflow.\n- CI includes fallback install logic for DCM:\n  - If `dcm` is unavailable, run `dart pub global activate dart_code_metrics` and add `$HOME/.pub-cache/bin` to `PATH`.\n\n## Errors encountered during onboarding and workarounds\n1. **Local command failure**: `dart: command not found`\n   - Seen when running `dart pub get`, `dart analyze --fatal-infos`, and `dart test` in this environment.\n   - Workaround: install/setup Dart before validation (CI uses `dart-lang/setup-dart`; locally ensure `dart --version` works, then rerun commands).\n2. **GitHub Actions log retrieval limitation for a failed run**:\n   - `get_workflow_run_logs_url` returned `404 Not Found`.\n   - `list_workflow_jobs`/`get_job_logs` returned zero jobs for that run.\n   - Workaround: inspect `get_workflow_run` metadata (run URL, branch, event) and use the Actions UI/run page for details when API log endpoints are unavailable.\n\n## High-value docs for deeper context\n- `README.md` (project/release overview)\n- `.github/workflows/README.md` (deployment/CI details)\n- `.context/docs/testing-methodology.md`\n- `.context/docs/integration-tests.md`\n- `.context/docs/version-parsing.md`\n- `.context/docs/v4-release-notes.md`\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# FVM - Flutter Version Manager\n\nCLI tool for managing Flutter SDK versions per project.\n\n## Structure\n\n- `bin/main.dart`: CLI entry point\n- `lib/src/commands/`: CLI commands\n- `lib/src/services/`: Business logic (cache, flutter, git, project)\n- `lib/src/workflows/`: Multi-step orchestration\n- `lib/src/models/`: Data models (dart_mappable)\n- `test/`: Unit + integration tests\n\n## Commands\n\n```bash\ndart pub get                    # Install dependencies\ndart test                       # Unit tests\ndart run grinder integration-test  # Integration suite (needs Flutter)\ndart analyze --fatal-infos      # Analysis (must pass)\ndcm analyze lib                 # Code metrics\ndart run build_runner build --delete-conflicting-outputs  # Regenerate mappers\n```\n\n## Verification\n\nPre-commit hooks run automatically. Before pushing:\n1. `dart analyze --fatal-infos` passes\n2. `dcm analyze lib` passes\n3. `dart test` passes\n\nFor final review on changes that affect `GitService`, `FlutterService`,\n`EnsureCacheWorkflow`, install/use/global command behavior, prompt handling, or\nproject SDK references, also run the manual branch smoke test in\n`docs/pages/documentation/guides/manual-smoke-test.md`. It uses isolated temp `HOME`,\n`FVM_CACHE_PATH`, and `FVM_GIT_CACHE_PATH` values and includes cleanup guidance\nfor the temporary SDKs, git cache, project files, and config it creates.\n\n## Architecture\n\nCommands → Workflows → Services → Models\n\n- Services accessed via `FvmContext.get<T>()`\n- Workflows extend `Workflow` for multi-step operations\n- Models use `@MappableClass()` with `part 'name.mapper.dart';`\n\n## Critical Rules\n\n- NEVER bypass git hooks with `--no-verify`\n- YOU MUST run `build_runner build` after modifying `@MappableClass()` models\n- Integration tests require Flutter: run `dart run grinder test-setup` first\n\n## Gotchas\n\n- Release tool (`tool/release_tool/`) requires Dart >=3.8.0\n- Version format: `[fork/]version[@channel]` (e.g., `stable`, `3.24.0`, `custom-fork/3.24.0@beta`)\n\n## Documentation\n\nDeveloper docs live in `.context/docs/` and tracked guides under\n`docs/pages/documentation/guides/`. Reference for specific tasks:\n\n- @README.md - Project overview, release process\n- @CHANGELOG.md - Version history, breaking changes\n- @.github/workflows/README.md - CI/CD pipelines, deployment automation\n- @.context/docs/testing-methodology.md - Test patterns, TestFactory, mocking\n- @.context/docs/integration-tests.md - Real integration guardrails\n- @docs/pages/documentation/guides/manual-smoke-test.md - Isolated final smoke test for git cache, install/use, prompts, symlinks, Melos, VS Code, and cleanup\n- @.context/docs/version-parsing.md - Version parsing regex and logic\n- @.context/docs/v4-release-notes.md - v4.0 architecture changes, migration\n","category":"root","tokens":691},{"name":"copilot-instructions.md","path":".github/copilot-instructions.md","title":"copilot-instructions.md","content":"# Copilot Instructions for `leoafarias/fvm`\n\n## Project overview\n- FVM is a Dart CLI that manages Flutter SDK versions per project.\n- Main architecture flow: **Commands → Workflows → Services → Models**.\n- Key paths:\n  - `bin/main.dart` (CLI entrypoint)\n  - `lib/src/commands/` (command handlers)\n  - `lib/src/workflows/` (multi-step orchestration)\n  - `lib/src/services/` (core business logic)\n  - `lib/src/models/` (data models, many generated with `dart_mappable`)\n  - `test/` (unit + integration tests)\n\n## First-run checklist for coding agents\n1. Read `AGENTS.md` and `.context/docs/README.md`.\n2. Install dependencies:\n   - Root: `dart pub get`\n   - Also check subprojects when touched:\n     - `fvm_mcp/`: `dart pub get`\n     - `tool/release_tool/`: `dart pub get` (requires Dart `>=3.8.0`)\n3. Before changing code, run baseline checks (if environment supports Dart):\n   - `dart analyze --fatal-infos`\n   - `dcm analyze lib`\n   - `dart test`\n4. After changes, re-run targeted checks first, then broader checks relevant to touched areas.\n\n## Build, test, and analysis commands\n- Root project:\n  - `dart pub get`\n  - `dart analyze --fatal-infos`\n  - `dcm analyze lib`\n  - `dart test`\n- Integration suite (Flutter required):\n  - `dart run grinder test-setup`\n  - `dart run grinder integration-test`\n- Mapper/codegen (required after editing `@MappableClass()` models):\n  - `dart run build_runner build --delete-conflicting-outputs`\n\n## Repository-specific conventions\n- Keep changes surgical: avoid broad refactors unless required by the issue.\n- Prefer existing testing utilities (`TestFactory`, `TestCommandRunner`) and patterns in `.context/docs/testing-methodology.md`.\n- Integration tests are heavyweight and network-sensitive; prefer unit/targeted tests first.\n- Release tooling is separate under `tool/release_tool/` and uses a newer Dart SDK than the main repo.\n\n## CI and workflow context\n- Main validation workflow: `.github/workflows/test.yml`.\n- `test.yml` ignores docs-only changes (`**/*.md`), so editing this file alone should not trigger the heavy test workflow.\n- CI includes fallback install logic for DCM:\n  - If `dcm` is unavailable, run `dart pub global activate dart_code_metrics` and add `$HOME/.pub-cache/bin` to `PATH`.\n\n## Errors encountered during onboarding and workarounds\n1. **Local command failure**: `dart: command not found`\n   - Seen when running `dart pub get`, `dart analyze --fatal-infos`, and `dart test` in this environment.\n   - Workaround: install/setup Dart before validation (CI uses `dart-lang/setup-dart`; locally ensure `dart --version` works, then rerun commands).\n2. **GitHub Actions log retrieval limitation for a failed run**:\n   - `get_workflow_run_logs_url` returned `404 Not Found`.\n   - `list_workflow_jobs`/`get_job_logs` returned zero jobs for that run.\n   - Workaround: inspect `get_workflow_run` metadata (run URL, branch, event) and use the Actions UI/run page for details when API log endpoints are unavailable.\n\n## High-value docs for deeper context\n- `README.md` (project/release overview)\n- `.github/workflows/README.md` (deployment/CI details)\n- `.context/docs/testing-methodology.md`\n- `.context/docs/integration-tests.md`\n- `.context/docs/version-parsing.md`\n- `.context/docs/v4-release-notes.md`\n","category":".github","tokens":817}]}