📝 Update README.md

This commit is contained in:
Jonas Bengtsson
2026-09-12 09:53:44 +02:00
parent 17b8525de1
commit 9df8659c6b
+66
View File
@@ -56,6 +56,72 @@ See [`config/example.yaml`](config/example.yaml). Configuration is YAML;
deployment-specific values can be overridden through environment variables
using the `GIT_AUTO_TRACKER_<SECTION>__<KEY>` convention.
## Specification status
Progress against `functional specification.md` (FR-001 – FR-029). The v1
scope is defined by Section 44, *Definition of Done – Initial Release*.
### Implemented
- [x] Inspect an existing Git repository (FR-001)
- [x] Detect added, modified and deleted files (FR-002 – FR-004)
- [x] Rename detection via the add+delete fallback (FR-005, Section 6.1)
- [x] Configurable author resolver chain with confidence levels and `UNKNOWN` fallback; sidecar metadata resolver implemented (FR-006, FR-007, Sections 9 – 11)
- [x] Per-file attribution in the commit message (FR-008, FR-012)
- [x] Automatic commit generation (FR-009)
- [x] Structured commit message: summary counts, per-file details, `Tracker-*` trailers (FR-010, FR-011, Sections 15/16/36)
- [x] No empty commits (FR-014)
- [x] Rotating application logs, console + file (FR-015, Sections 22 – 23)
- [x] Cross-platform code base: `pathlib`, argument arrays, UTF-8/NUL-safe Git parsing (FR-016, FR-029)
- [x] Dry-run mode (FR-017, Section 31)
- [x] YAML configuration with environment overrides (FR-018, Section 26)
- [x] Include/exclude file filters with gitignore-style `**` globs (FR-019, Section 7)
- [x] Repository lock with stale-lock recovery, stored outside the repository (FR-020, FR-028, Section 21)
- [x] Author-resolution errors never block an otherwise valid commit (FR-021)
- [x] Git / repository integrity errors prevent the commit; index restored on failure (FR-022, Section 14)
- [x] One atomic commit per collection cycle (FR-023)
- [x] Forbidden-file abort with dedicated security exit code (FR-024, FR-027, Section 33)
- [x] Index-state validation: pre-existing staged changes / unfinished merge abort (FR-026, Section 5.1)
- [x] Exit codes 0 – 7 for external monitoring (Section 25)
- [x] CLI: `run` / `status` / `validate` / `config` with secret redaction (Section 30)
- [x] ULID run identifiers for log/commit traceability (Section 35)
- [x] Commit author is the tracker service identity, engineers recorded per file (Section 17/18/43)
### Left to do
Required by the specification (v1 gaps):
- [ ] Concurrent-modification detection (FR-025, Section 20) – snapshot helpers exist in `git/status.py` but are not wired into collection; add before/after attribute checks (size / mtime / optional hash) with abort-on-change policy
- [ ] Honor `application.timezone` in log and commit-message timestamps (Sections 22, 26); add the timezone test from Section 41
- [ ] Log execution duration per collection (Section 22)
- [ ] `validate`: also verify file access (Section 30)
- [ ] `status`: apply include/exclude filters and preview author resolution (Section 30)
- [ ] Configurable alternative policy for pre-existing staged changes: commit with `UNKNOWN` attribution (Section 5.1)
- [ ] Configurable alternative to skip (instead of abort on) forbidden files (Section 33)
- [ ] Native rename detection instead of the add+delete fallback (FR-005 "should", Section 6.1)
- [ ] Missing tests (Section 41): failed commit, unavailable Git executable, inaccessible file, file removed during collection, macOS in the CI matrix
Blocked on SCADA platform knowledge:
- [ ] SCADA metadata resolver – embedded project metadata (Section 10)
- [ ] SCADA audit-log resolver (Section 10)
- [ ] Operating-system audit resolver (Section 10, optional)
Optional / future extensions (Section 42, "may be added later"):
- [ ] Scheduled service mode (Section 4.2)
- [ ] Remote push with `COMMIT_SUCCESS` / `PUSH_FAILURE` distinction (Section 34)
- [ ] Signed Git commits
- [ ] SCADA semantic / XML-aware / JSON-aware comparison
- [ ] Proprietary SCADA project parsers
- [ ] Automatic reports, REST API, web interface, Grafana integration
- [ ] Email/Teams notifications
- [ ] Change approval workflow, correlation with maintenance/change requests
- [ ] Active Directory integration
- [ ] Cryptographic file hashes
- [ ] IEC/ISO 81346 asset mapping
- [ ] Detection of changes outside approved maintenance windows
## Development
```bash