| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 0 | 8 | 8 | 0% |
| Commands | 6 | 4 | 0 | 60% |
| Section tags | 2 | 4 | 2 | 25% |
What each file covers
Sections
0 shared · 8 only in A · 8 only in B- − Copilot Instructions for `leoafarias/fvm`
- − Project overview
- − First-run checklist for coding agents
- − Build, test, and analysis commands
- − Repository-specific conventions
- − CI and workflow context
- − Errors encountered during onboarding and workarounds
- − High-value docs for deeper context
- + FVM - Flutter Version Manager
- + Structure
- + Commands
- + Verification
- + Architecture
- + Critical Rules
- + Gotchas
- + Documentation
Commands
6 shared · 4 only in A · 0 only in B- − dart pub global activate dart_code_metrics
- − dart: command not found
- − dart-lang/setup-dart
- − dart --version
- dart pub get
- dart analyze --fatal-infos
- dart test
- dart run grinder test-setup
- dart run grinder integration-test
- dart run build_runner build --delete-conflicting-outputs
Section tags
2 shared · 4 only in A · 2 only in B- − build
- − test
- − code-style
- − agent-behaviour
- + deployment
- + do-not
- architecture
- docs
Line diff
conceptadev/fvm · .github/copilot-instructions.md
@@ −1 @@
1# Copilot Instructions for `leoafarias/fvm`
2
3## Project overview
4- FVM is a Dart CLI that manages Flutter SDK versions per project.
5- Main architecture flow: **Commands → Workflows → Services → Models**.
6- Key paths:
7 - `bin/main.dart` (CLI entrypoint)
8 - `lib/src/commands/` (command handlers)
9 - `lib/src/workflows/` (multi-step orchestration)
10 - `lib/src/services/` (core business logic)
11 - `lib/src/models/` (data models, many generated with `dart_mappable`)
12 - `test/` (unit + integration tests)
13
14## First-run checklist for coding agents
151. Read `AGENTS.md` and `.context/docs/README.md`.
162. Install dependencies:
17 - Root: `dart pub get`
18 - Also check subprojects when touched:
19 - `fvm_mcp/`: `dart pub get`
20 - `tool/release_tool/`: `dart pub get` (requires Dart `>=3.8.0`)
213. Before changing code, run baseline checks (if environment supports Dart):
22 - `dart analyze --fatal-infos`
23 - `dcm analyze lib`
24 - `dart test`
254. After changes, re-run targeted checks first, then broader checks relevant to touched areas.
26
27## Build, test, and analysis commands
28- Root project:
29 - `dart pub get`
30 - `dart analyze --fatal-infos`
31 - `dcm analyze lib`
32 - `dart test`
33- Integration suite (Flutter required):
34 - `dart run grinder test-setup`
35 - `dart run grinder integration-test`
36- Mapper/codegen (required after editing `@MappableClass()` models):
37 - `dart run build_runner build --delete-conflicting-outputs`
38
39## Repository-specific conventions
40- Keep changes surgical: avoid broad refactors unless required by the issue.
41- Prefer existing testing utilities (`TestFactory`, `TestCommandRunner`) and patterns in `.context/docs/testing-methodology.md`.
42- Integration tests are heavyweight and network-sensitive; prefer unit/targeted tests first.
43- Release tooling is separate under `tool/release_tool/` and uses a newer Dart SDK than the main repo.
44
45## CI and workflow context
46- Main validation workflow: `.github/workflows/test.yml`.
47- `test.yml` ignores docs-only changes (`**/*.md`), so editing this file alone should not trigger the heavy test workflow.
48- CI includes fallback install logic for DCM:
49 - If `dcm` is unavailable, run `dart pub global activate dart_code_metrics` and add `$HOME/.pub-cache/bin` to `PATH`.
50
51## Errors encountered during onboarding and workarounds
521. **Local command failure**: `dart: command not found`
53 - Seen when running `dart pub get`, `dart analyze --fatal-infos`, and `dart test` in this environment.
54 - Workaround: install/setup Dart before validation (CI uses `dart-lang/setup-dart`; locally ensure `dart --version` works, then rerun commands).
552. **GitHub Actions log retrieval limitation for a failed run**:
56 - `get_workflow_run_logs_url` returned `404 Not Found`.
57 - `list_workflow_jobs`/`get_job_logs` returned zero jobs for that run.
58 - 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.
59
60## High-value docs for deeper context
61- `README.md` (project/release overview)
62- `.github/workflows/README.md` (deployment/CI details)
63- `.context/docs/testing-methodology.md`
64- `.context/docs/integration-tests.md`
65- `.context/docs/version-parsing.md`
66- `.context/docs/v4-release-notes.md`
67
conceptadev/fvm · AGENTS.md
@@ +1 @@
1# FVM - Flutter Version Manager
2
3CLI tool for managing Flutter SDK versions per project.
4
5## Structure
6
7- `bin/main.dart`: CLI entry point
8- `lib/src/commands/`: CLI commands
9- `lib/src/services/`: Business logic (cache, flutter, git, project)
10- `lib/src/workflows/`: Multi-step orchestration
11- `lib/src/models/`: Data models (dart_mappable)
12- `test/`: Unit + integration tests
13
14## Commands
15
16```bash
17dart pub get # Install dependencies
18dart test # Unit tests
19dart run grinder integration-test # Integration suite (needs Flutter)
20dart analyze --fatal-infos # Analysis (must pass)
21dcm analyze lib # Code metrics
22dart run build_runner build --delete-conflicting-outputs # Regenerate mappers
23```
24
25## Verification
26
27Pre-commit hooks run automatically. Before pushing:
281. `dart analyze --fatal-infos` passes
292. `dcm analyze lib` passes
303. `dart test` passes
31
32For final review on changes that affect `GitService`, `FlutterService`,
33`EnsureCacheWorkflow`, install/use/global command behavior, prompt handling, or
34project SDK references, also run the manual branch smoke test in
35`docs/pages/documentation/guides/manual-smoke-test.md`. It uses isolated temp `HOME`,
36`FVM_CACHE_PATH`, and `FVM_GIT_CACHE_PATH` values and includes cleanup guidance
37for the temporary SDKs, git cache, project files, and config it creates.
38
39## Architecture
40
41Commands → Workflows → Services → Models
42
43- Services accessed via `FvmContext.get<T>()`
44- Workflows extend `Workflow` for multi-step operations
45- Models use `@MappableClass()` with `part 'name.mapper.dart';`
46
47## Critical Rules
48
49- NEVER bypass git hooks with `--no-verify`
50- YOU MUST run `build_runner build` after modifying `@MappableClass()` models
51- Integration tests require Flutter: run `dart run grinder test-setup` first
52
53## Gotchas
54
55- Release tool (`tool/release_tool/`) requires Dart >=3.8.0
56- Version format: `[fork/]version[@channel]` (e.g., `stable`, `3.24.0`, `custom-fork/3.24.0@beta`)
57
58## Documentation
59
60Developer docs live in `.context/docs/` and tracked guides under
61`docs/pages/documentation/guides/`. Reference for specific tasks:
62
63- @README.md - Project overview, release process
64- @CHANGELOG.md - Version history, breaking changes
65- @.github/workflows/README.md - CI/CD pipelines, deployment automation
66- @.context/docs/testing-methodology.md - Test patterns, TestFactory, mocking
67- @.context/docs/integration-tests.md - Real integration guardrails
68- @docs/pages/documentation/guides/manual-smoke-test.md - Isolated final smoke test for git cache, install/use, prompts, symlinks, Melos, VS Code, and cleanup
69- @.context/docs/version-parsing.md - Version parsing regex and logic
70- @.context/docs/v4-release-notes.md - v4.0 architecture changes, migration
71
@@ −1 +1 @@
1−# Copilot Instructions for `leoafarias/fvm`
1+# FVM - Flutter Version Manager
22
3−## Project overview
4−- FVM is a Dart CLI that manages Flutter SDK versions per project.
5−- Main architecture flow: **Commands → Workflows → Services → Models**.
6−- Key paths:
7− - `bin/main.dart` (CLI entrypoint)
8− - `lib/src/commands/` (command handlers)
9− - `lib/src/workflows/` (multi-step orchestration)
10− - `lib/src/services/` (core business logic)
11− - `lib/src/models/` (data models, many generated with `dart_mappable`)
12− - `test/` (unit + integration tests)
3+CLI tool for managing Flutter SDK versions per project.
134
14−## First-run checklist for coding agents
15−1. Read `AGENTS.md` and `.context/docs/README.md`.
16−2. Install dependencies:
17− - Root: `dart pub get`
18− - Also check subprojects when touched:
19− - `fvm_mcp/`: `dart pub get`
20− - `tool/release_tool/`: `dart pub get` (requires Dart `>=3.8.0`)
21−3. Before changing code, run baseline checks (if environment supports Dart):
22− - `dart analyze --fatal-infos`
23− - `dcm analyze lib`
24− - `dart test`
25−4. After changes, re-run targeted checks first, then broader checks relevant to touched areas.
5+## Structure
266
27−## Build, test, and analysis commands
28−- Root project:
29− - `dart pub get`
30− - `dart analyze --fatal-infos`
31− - `dcm analyze lib`
32− - `dart test`
33−- Integration suite (Flutter required):
34− - `dart run grinder test-setup`
35− - `dart run grinder integration-test`
36−- Mapper/codegen (required after editing `@MappableClass()` models):
37− - `dart run build_runner build --delete-conflicting-outputs`
7+- `bin/main.dart`: CLI entry point
8+- `lib/src/commands/`: CLI commands
9+- `lib/src/services/`: Business logic (cache, flutter, git, project)
10+- `lib/src/workflows/`: Multi-step orchestration
11+- `lib/src/models/`: Data models (dart_mappable)
12+- `test/`: Unit + integration tests
3813
39−## Repository-specific conventions
40−- Keep changes surgical: avoid broad refactors unless required by the issue.
41−- Prefer existing testing utilities (`TestFactory`, `TestCommandRunner`) and patterns in `.context/docs/testing-methodology.md`.
42−- Integration tests are heavyweight and network-sensitive; prefer unit/targeted tests first.
43−- Release tooling is separate under `tool/release_tool/` and uses a newer Dart SDK than the main repo.
14+## Commands
4415
45−## CI and workflow context
46−- Main validation workflow: `.github/workflows/test.yml`.
47−- `test.yml` ignores docs-only changes (`**/*.md`), so editing this file alone should not trigger the heavy test workflow.
48−- CI includes fallback install logic for DCM:
49− - If `dcm` is unavailable, run `dart pub global activate dart_code_metrics` and add `$HOME/.pub-cache/bin` to `PATH`.
16+```bash
17+dart pub get # Install dependencies
18+dart test # Unit tests
19+dart run grinder integration-test # Integration suite (needs Flutter)
20+dart analyze --fatal-infos # Analysis (must pass)
21+dcm analyze lib # Code metrics
22+dart run build_runner build --delete-conflicting-outputs # Regenerate mappers
23+```
5024
51−## Errors encountered during onboarding and workarounds
52−1. **Local command failure**: `dart: command not found`
53− - Seen when running `dart pub get`, `dart analyze --fatal-infos`, and `dart test` in this environment.
54− - Workaround: install/setup Dart before validation (CI uses `dart-lang/setup-dart`; locally ensure `dart --version` works, then rerun commands).
55−2. **GitHub Actions log retrieval limitation for a failed run**:
56− - `get_workflow_run_logs_url` returned `404 Not Found`.
57− - `list_workflow_jobs`/`get_job_logs` returned zero jobs for that run.
58− - 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.
25+## Verification
5926
60−## High-value docs for deeper context
61−- `README.md` (project/release overview)
62−- `.github/workflows/README.md` (deployment/CI details)
63−- `.context/docs/testing-methodology.md`
64−- `.context/docs/integration-tests.md`
65−- `.context/docs/version-parsing.md`
66−- `.context/docs/v4-release-notes.md`
27+Pre-commit hooks run automatically. Before pushing:
28+1. `dart analyze --fatal-infos` passes
29+2. `dcm analyze lib` passes
30+3. `dart test` passes
31+
32+For final review on changes that affect `GitService`, `FlutterService`,
33+`EnsureCacheWorkflow`, install/use/global command behavior, prompt handling, or
34+project SDK references, also run the manual branch smoke test in
35+`docs/pages/documentation/guides/manual-smoke-test.md`. It uses isolated temp `HOME`,
36+`FVM_CACHE_PATH`, and `FVM_GIT_CACHE_PATH` values and includes cleanup guidance
37+for the temporary SDKs, git cache, project files, and config it creates.
38+
39+## Architecture
40+
41+Commands → Workflows → Services → Models
42+
43+- Services accessed via `FvmContext.get<T>()`
44+- Workflows extend `Workflow` for multi-step operations
45+- Models use `@MappableClass()` with `part 'name.mapper.dart';`
46+
47+## Critical Rules
48+
49+- NEVER bypass git hooks with `--no-verify`
50+- YOU MUST run `build_runner build` after modifying `@MappableClass()` models
51+- Integration tests require Flutter: run `dart run grinder test-setup` first
52+
53+## Gotchas
54+
55+- Release tool (`tool/release_tool/`) requires Dart >=3.8.0
56+- Version format: `[fork/]version[@channel]` (e.g., `stable`, `3.24.0`, `custom-fork/3.24.0@beta`)
57+
58+## Documentation
59+
60+Developer docs live in `.context/docs/` and tracked guides under
61+`docs/pages/documentation/guides/`. Reference for specific tasks:
62+
63+- @README.md - Project overview, release process
64+- @CHANGELOG.md - Version history, breaking changes
65+- @.github/workflows/README.md - CI/CD pipelines, deployment automation
66+- @.context/docs/testing-methodology.md - Test patterns, TestFactory, mocking
67+- @.context/docs/integration-tests.md - Real integration guardrails
68+- @docs/pages/documentation/guides/manual-smoke-test.md - Isolated final smoke test for git cache, install/use, prompts, symlinks, Melos, VS Code, and cleanup
69+- @.context/docs/version-parsing.md - Version parsing regex and logic
70+- @.context/docs/v4-release-notes.md - v4.0 architecture changes, migration
6771
