Skip to content

Commit dd390f7

Browse files
committed
Implement engineering policy and assurance platform
1 parent 7d22dfc commit dd390f7

57 files changed

Lines changed: 4313 additions & 1 deletion

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: Policy change
2+
description: Propose a reviewed change to engineering obligations
3+
body:
4+
- type: textarea
5+
attributes: {label: Problem and evidence}
6+
validations: {required: true}
7+
- type: textarea
8+
attributes: {label: Proposed obligation and override semantics}
9+
validations: {required: true}
10+
- type: textarea
11+
attributes: {label: Profiles, compatibility, and migration impact}
12+
validations: {required: true}
13+
- type: textarea
14+
attributes: {label: Why native capabilities are insufficient}
15+
validations: {required: true}
16+

.github/pull_request_template.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
## Intent and acceptance
2+
3+
## Policy/profile/schema impact
4+
5+
## Compatibility and upgrade impact
6+
7+
## Native capability considered
8+
9+
## Validation evidence
10+
11+
## Complexity / deferred alternatives
12+

.github/workflows/ci.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: CI
2+
on: [pull_request, push]
3+
permissions:
4+
contents: read
5+
jobs:
6+
test:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: actions/checkout@v4
10+
- uses: actions/setup-python@v5
11+
with: {python-version: "3.12"}
12+
- run: python -m pip install '.[dev]' build
13+
- run: pytest
14+
- run: python tests/verify.py
15+
- run: python -m build
16+

.gitignore

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
__pycache__/
2+
*.py[cod]
3+
.pytest_cache/
4+
.coverage
5+
htmlcov/
6+
.venv/
7+
dist/
8+
build/
9+
*.egg-info/
10+
.engineering/evidence/
11+
.engineering/effective-obligations.json
12+
upload/

.initial

Lines changed: 0 additions & 1 deletion
This file was deleted.

CONTRIBUTING.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Contributing
2+
3+
Open an issue before implementation. Keep policy technology-neutral and encode obligations rather than generic engineering advice. Add tests for inheritance, classification, evidence, adapters, and migration impact. Run `pytest`, build/install the wheel, and exercise the CLI outside the checkout. Pull requests must explain why new machinery is necessary and identify native alternatives considered.
4+

GOVERNANCE.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Governance
2+
3+
Policy changes require an issue, rationale, blast-radius and compatibility analysis, affected profiles, schema/migration notes, and tests against representative repositories. Changes to locked controls require explicit maintainer review and may not be bundled with unrelated work. Releases use semantic versions and immutable Git revisions. Security-sensitive reports should not be filed publicly; contact the repository owner privately.
4+

LICENSE

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Copyright 2026 Suyog Joshi
2+
3+
Licensed under the Apache License, Version 2.0 (the "License");
4+
you may not use this file except in compliance with the License.
5+
You may obtain a copy of the License at
6+
7+
http://www.apache.org/licenses/LICENSE-2.0
8+
9+
Unless required by applicable law or agreed to in writing, software
10+
distributed under the License is distributed on an "AS IS" BASIS,
11+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
See the License for the specific language governing permissions and
13+
limitations under the License.
14+

MANIFEST.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
recursive-include policy *.yaml
2+
recursive-include schemas *.json
3+
recursive-include skills SKILL.md *.md
4+
recursive-include templates *.yml
5+
recursive-include docs *.md

README.md

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
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

Comments
 (0)