Two files, one repository
conceptadev/fvm ships 2 formats across 2 indexed files. The question worth asking is whether the second one says anything the first does not.
| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 0 | 8 | 8 | 0% |
| Commands | 6 | 0 | 4 | 60% |
| Section tags | 2 | 2 | 4 | 25% |
What each file covers
Sections
0 shared · 8 only in A · 8 only in B- − FVM - Flutter Version Manager
- − Structure
- − Commands
- − Verification
- − Architecture
- − Critical Rules
- − Gotchas
- − Documentation
- + 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
Commands
6 shared · 0 only in A · 4 only in B- + dart pub global activate dart_code_metrics
- + dart: command not found
- + dart-lang/setup-dart
- + dart --version
- dart pub get
- dart test
- dart run grinder integration-test
- dart analyze --fatal-infos
- dart run build_runner build --delete-conflicting-outputs
- dart run grinder test-setup
Section tags
2 shared · 2 only in A · 4 only in B- − deployment
- − do-not
- + build
- + test
- + code-style
- + agent-behaviour
- architecture
- docs
Line diff
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
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
@@ −1 +1 @@
1−# FVM - Flutter Version Manager
1+# Copilot Instructions for `leoafarias/fvm`
22
3−CLI tool for managing Flutter SDK versions per project.
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)
413
5−## Structure
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.
626
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
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`
1338
14−## Commands
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.
1544
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−```
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`.
2450
25−## Verification
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.
2659
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
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`
7167
