|
| 1 | +# Maintainer notes |
| 2 | + |
| 3 | +> For future you. Things nobody else should have to rediscover. |
| 4 | +> Contributors start at [VISION.md](VISION.md). Users start at the [README](README.md). |
| 5 | +
|
| 6 | +## Release checklist |
| 7 | + |
| 8 | +- [ ] `composer format` (Pint) |
| 9 | +- [ ] `composer analyse` (PHPStan / Larastan) |
| 10 | +- [ ] `composer test` (PHPUnit β full suite) |
| 11 | +- [ ] Update `[Unreleased]` β version section in `CHANGELOG.md` |
| 12 | +- [ ] Verify **public API** surface (below) β no accidental breaks |
| 13 | +- [ ] Review **ADR impact** β does this change need a new ADR or an amendment? |
| 14 | +- [ ] Check **backward compatibility** (SemVer; BC aliases; config merge) |
| 15 | +- [ ] Docs still match behavior (`README`, `docs/`, `VISION.md` if product intent shifted) |
| 16 | +- [ ] Tag release (`vX.Y.Z`) and push tag |
| 17 | +- [ ] Packagist / GitHub release notes as needed |
| 18 | + |
| 19 | +## Public API (stable β SemVer) |
| 20 | + |
| 21 | +Treat breaking changes here as **major** (unless clearly experimental and documented). |
| 22 | + |
| 23 | +### Architecture engine |
| 24 | + |
| 25 | +| Symbol | Role | |
| 26 | +| --- | --- | |
| 27 | +| `ArchitectureEngine` | Entry point for analyze / lint | |
| 28 | +| `AnalysisResult` | Immutable analysis output | |
| 29 | +| `LayerRegistry` | Layer definitions | |
| 30 | +| `ArchitectureRule` | Rule contract | |
| 31 | +| `RulePack` | Pack of rules | |
| 32 | +| `DependencyExtractor` | Extraction contract | |
| 33 | +| `Renderer` | Report rendering contract | |
| 34 | +| `MetricCalculator` | Metrics contract (plugins later) | |
| 35 | +| `SuggestionProvider` | Suggestions contract (plugins later) | |
| 36 | +| Value objects / IDs used in public results | e.g. `Violation`, `Hotspot`, `Baseline`, `RuleId`, `LayerId`, `NodeId`, β¦ | |
| 37 | + |
| 38 | +### Workspace read model (Experience β evolving) |
| 39 | + |
| 40 | +| Symbol | Role | |
| 41 | +| --- | --- | |
| 42 | +| `WorkspaceService` | Builds `WorkspaceSnapshot` from analysis + context | |
| 43 | +| `FixProposalService` | Builds `FixProposal` for Preview (no Apply yet) | |
| 44 | +| `WorkspaceSnapshot` | Immutable payload (`schema_version` 1.1) for UI/CLI/adapters | |
| 45 | +| `FixProposal` Β· `FileChange` Β· `VerificationPlan` Β· `FixConfidence` Β· `FixRisk` | Preview / verification contract | |
| 46 | +| `WorkspaceContext` / `Finding` / `WorkspaceIssue` / `IssueExplanation` / `WorkspaceAction` / `WorkspaceHealth` | Domain concepts | |
| 47 | +| `WorkspaceId` Β· `ContextId` Β· `FindingId` Β· `IssueId` Β· `ActionId` Β· `SessionId` Β· `FixProposalId` | Typed identities | |
| 48 | + |
| 49 | +Treat additive snapshot fields as minor; removing/renaming fields as major once declared stable in a release. |
| 50 | + |
| 51 | +### Generation (application-facing) |
| 52 | + |
| 53 | +| Symbol | Role | |
| 54 | +| --- | --- | |
| 55 | +| Generator contract + registered patterns | `make:module` / feature / wizard surface | |
| 56 | +| Published config keys under `lara-architect.generation` | Presets, namespaces, generators | |
| 57 | +| Runtime bases | e.g. `ArchitectRepository`, `ArchitectService`, β¦ (+ BC aliases) | |
| 58 | + |
| 59 | +### Extension events (when ADR-0007 ships) |
| 60 | + |
| 61 | +Public lifecycle events + `ArchitectureEvent` contract β SemVer-stable per ADR-0007. |
| 62 | + |
| 63 | +## Internal (no compatibility promise) |
| 64 | + |
| 65 | +May change in any minor/patch without notice. Do not depend on these from app code or sibling packages. |
| 66 | + |
| 67 | +| Symbol | Role | |
| 68 | +| --- | --- | |
| 69 | +| `DependencyGraph` | Graph structure | |
| 70 | +| `RegexExtractor` | Default extractor implementation | |
| 71 | +| `FileScanner` | Filesystem scanning | |
| 72 | +| `EngineFactory` wiring details | Construction internals | |
| 73 | +| Scanners / use-case helpers not exported as API | β | |
| 74 | +| Stub file paths / private generator helpers | β | |
| 75 | + |
| 76 | +When unsure: if it is not documented as public here or in the README/engine docs, treat it as **internal**. |
| 77 | + |
| 78 | +## Product discipline |
| 79 | + |
| 80 | +1. Read [VISION.md](VISION.md) and [docs/philosophy.md](docs/philosophy.md) before large changes. |
| 81 | +2. Prefer strengthening the **engine** or the **Workspace experience** over unrelated features. |
| 82 | +3. **Enterprise** stays a future direction until the open-source edition proves the architecture β do not build it early. |
| 83 | +4. Update the [ADR index](docs/adr/README.md) when adding a decision record. |
| 84 | + |
| 85 | +## Useful links |
| 86 | + |
| 87 | +- [Roadmap](docs/roadmap.md) |
| 88 | +- [Architecture notes](docs/architecture/) |
| 89 | +- [ADR index](docs/adr/README.md) |
| 90 | +- [Contributing](CONTRIBUTING.md) |
0 commit comments