|
| 1 | +# Software Engineering Process |
| 2 | + |
| 3 | +A technology-neutral Software Engineering Policy and Assurance platform. It resolves **what must be true** for a change and delegates **how** to coding assistants, humans, CI, GitHub, and other native mechanisms. |
| 4 | + |
| 5 | +```text |
| 6 | +Canonical Policy → Domain Profile → Repository Manifest → Trusted Classification |
| 7 | +→ Effective Obligation Set → Skills / Native Controls / Human Boundaries |
| 8 | +→ Execution → Exact-Revision Evidence → Readiness → Merge / Deployment |
| 9 | +``` |
| 10 | + |
| 11 | +This is not a coding-agent orchestrator. It is a small policy compiler, evidence join, and set of portable specialist procedures. |
| 12 | + |
| 13 | +## Install |
| 14 | + |
| 15 | +```bash |
| 16 | +python -m pip install . |
| 17 | +engineering-process --help |
| 18 | +``` |
| 19 | + |
| 20 | +Python 3.11+ is supported. The wheel includes the policy, schemas, templates, and Skills, so commands work outside this checkout. |
| 21 | + |
| 22 | +## Adopt in a repository |
| 23 | + |
| 24 | +From this process checkout (so the exact Git revision can be pinned): |
| 25 | + |
| 26 | +```bash |
| 27 | +engineering-process --root ../my-web-app init \ |
| 28 | + --profile frontend --repository-name suyog19/my-web-app |
| 29 | +``` |
| 30 | + |
| 31 | +Or supply an immutable released revision explicitly with `--revision <40-hex-sha>`. Initialization creates the manifest and lock, compact `AGENTS.md`/`CLAUDE.md`, portable Skills, and a validation workflow. Add repository differences—validation commands, protected path hints, UX triggers—to `.engineering/process.yaml`, then re-render/re-lock using a reviewed process upgrade. |
| 32 | + |
| 33 | +## Change flow |
| 34 | + |
| 35 | +```bash |
| 36 | +engineering-process classify \ |
| 37 | + --sha "$GITHUB_SHA" \ |
| 38 | + --path src/payments/refund.py \ |
| 39 | + --declared '{"observable_behavior":true}' |
| 40 | + |
| 41 | +engineering-process evaluate \ |
| 42 | + --sha "$GITHUB_SHA" \ |
| 43 | + --path src/payments/refund.py \ |
| 44 | + --declared '{"observable_behavior":true}' |
| 45 | + |
| 46 | +engineering-process explain \ |
| 47 | + --sha "$GITHUB_SHA" \ |
| 48 | + --path src/payments/refund.py \ |
| 49 | + --declared '{"observable_behavior":true}' |
| 50 | + |
| 51 | +engineering-process attest --predicate test-result/v1 \ |
| 52 | + --sha "$GITHUB_SHA" --capability ci-automation --verdict pass \ |
| 53 | + --identity github-actions --context-id "$GITHUB_RUN_ID" \ |
| 54 | + --output .engineering/evidence/test.json |
| 55 | + |
| 56 | +engineering-process readiness --sha "$GITHUB_SHA" |
| 57 | +engineering-process validate |
| 58 | +engineering-process metrics --obligations .engineering/effective-obligations.json |
| 59 | +``` |
| 60 | + |
| 61 | +`classify` is monotonic: declarations may strengthen routing but may not defeat deterministic Protected signals. Unknown Protected characteristics fail closed. `readiness` rejects malformed, failed, contradictory, wrong-SHA, wrong-process-revision, and invalid fresh-context review evidence. |
| 62 | + |
| 63 | +## Policy model |
| 64 | + |
| 65 | +- **Locked** controls cannot be changed locally (fresh-context independent review, fail-closed Protected routing, exact-revision evidence, secrets, traceability, human production boundary). |
| 66 | +- **Extensible** controls can only be strengthened. |
| 67 | +- **Overridable** mechanics belong to repositories (commands, paths, runtime, framework, environments). |
| 68 | +- Profiles describe engineering/risk domains (`generic`, `frontend`, `backend`), never languages or frameworks. |
| 69 | +- Specialist procedures are portable `SKILL.md` packages and are selected only when obligations require them. |
| 70 | +- Solution Sufficiency classifies feedback as must-address, worth-now, defer, or reject. It cannot suppress mandatory findings and provides an explicit stopping rule. |
| 71 | + |
| 72 | +See [Architecture](docs/architecture.md), [Adoption](docs/adoption.md), [GitHub enforcement](enforcement/github/README.md), [governance](GOVERNANCE.md), and the [authoritative design](docs/design/common-software-engineering-process-design-v4.md). |
| 73 | + |
| 74 | +## Development |
| 75 | + |
| 76 | +```bash |
| 77 | +python -m pip install -e '.[dev]' |
| 78 | +pytest |
| 79 | +python -m build |
| 80 | +``` |
| 81 | + |
| 82 | +Policy changes require tests, compatibility/upgrade notes, and stronger review for locked controls. Apache-2.0 licensed. |
0 commit comments