Skip to content

Commit 8f041d1

Browse files
committed
feat: add adaptive assurance and feedback
1 parent 66122d5 commit 8f041d1

25 files changed

Lines changed: 272 additions & 19 deletions

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ Trusted classification derives the complete Git change set from exact `--base` a
5858

5959
Phase 2 adds a locked [agent-execution security baseline](docs/agent-execution-security.md), a complete [GitHub reference flow](enforcement/github/reference-flow.md), executable `test-result/v2` validation basis, and structured `independent-review/v2` evidence. `explain` reports profile-aware validation categories and the execution boundary. Reference evidence travels through GitHub artifacts and out-of-band provenance rather than source commits.
6060

61+
Phase 3 adds optional privacy-conscious outcome metrics, advisory task-delegation suitability independent of delivery profile, deterministic dependency assurance, and repository-context truth maintenance. See [adaptive assurance](docs/adaptive-assurance.md) and [delegation examples](docs/delegation-examples.md).
62+
6163
## Policy model
6264

6365
- **Locked** controls cannot be changed locally (fresh-context independent review, fail-closed Protected routing, exact-revision evidence, secrets, traceability, human production boundary).

docs/adaptive-assurance.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Adaptive assurance and feedback
2+
3+
Outcome metrics are optional repository/process measurements, never employee surveillance. Contract v1 aggregates by repository, workflow, change characteristics, and period; retains events for 180 days by default; distinguishes local coding time from issue-to-merge delivery; and covers flow, quality, stability, review burden, cost, complexity, and agent-effectiveness. Missing data stays explicit. Before/after reports interpret lower end-to-end time without worse quality as benefit, local-only speed as neutral, and downstream review/CI/correction growth as bottleneck displacement. Individual ranking and lines-of-code productivity are prohibited.
4+
5+
Delegation is advisory and independent of Lean/Standard/Protected. Clear, bounded, reversible work with deterministic tests may be autonomous; novelty, tacit knowledge, negotiation, blast radius, weak validation, or unknown high-impact inputs move guidance monotonically toward bounded assistance or human leadership. Humans may choose a more conservative level. The output records rationale, boundaries, checkpoints, and uncertainty; it grants no merge/production authority.
6+
7+
Dependency assurance detects manifests, lockfiles, VCS sources, mutable Actions, container bases, and registry configuration. Mechanical lock refresh is Standard, while unpinned/mutable trust-boundary changes are Protected. Ecosystem-native validation commands establish registry existence, resolved identity/version, lock integrity, provenance, vulnerability/licence results, and justification—for example `{command: "npm ci && npm audit", category: integration}` should be implemented as a reviewed script because shell composition is disabled.
8+
9+
Context truth metadata maintains operational sources of truth, not generic prose freshness. Existing static entries remain valid. High-criticality context declares an owner and deterministic verification; risk-based cadence is optional. Broken commands/files/links or overdue critical reviews fail with actionable diagnostics, while low-risk static documentation has no blanket expiry.

docs/delegation-examples.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Delegation examples
2+
3+
- Familiar, bounded, reversible test fix with strong deterministic validation: `delegate_autonomous` with readiness checkpoint.
4+
- Unfamiliar subsystem or architectural novelty: `assist` with human design checkpoint.
5+
- Ambiguous Lean redesign requiring stakeholder negotiation: `human_led`; Lean does not imply autonomy.
6+
- Well-specified sensitive migration with strong tests and reversible rollout: `delegate_bounded` under Protected controls; Protected does not require human typing.
7+
- Unknown blast radius or tacit-domain need: `human_led` until uncertainty is resolved.

policy/classification/characteristics.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
lean_hints: [typo, documentation_only, metadata_only, mechanical_test_only, established_css_only]
2-
standard: [observable_behavior, public_contract, user_journey, information_architecture, architecture, cross_service, state_transition, validation_or_error, performance, retry, concurrency, dependency_change, generated_change]
3-
protected: [financial_consequence, payment, payment_provider_trust, authentication, authorization, iam, privilege_or_trust, secrets, sensitive_data, production_controls, irreversible_data, infrastructure, refund_or_cancellation, learner_entitlement, sensitive_admin_action]
2+
standard: [observable_behavior, public_contract, user_journey, information_architecture, architecture, cross_service, state_transition, validation_or_error, performance, retry, concurrency, dependency_change, mechanical_lock_refresh, generated_change]
3+
protected: [financial_consequence, payment, payment_provider_trust, authentication, authorization, iam, privilege_or_trust, secrets, sensitive_data, production_controls, irreversible_data, infrastructure, refund_or_cancellation, learner_entitlement, sensitive_admin_action, dependency_trust_boundary]
44
deterministic_files:
55
- {pattern: "**/auth/**", characteristic: authentication}
66
- {pattern: "**/iam/**", characteristic: iam}

policy/core.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
schema_version: 1
22
process:
3-
version: 1.1.0
3+
version: 1.2.0
44
source: suyog19/software-engineering-process
55
controls:
66
traceability:

policy/evidence/predicate-types.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ independent-review/v2: {capability: independent-review, passing_verdicts: [pass]
1010
solution-sufficiency/v1: {capability: solution-sufficiency, passing_verdicts: [sufficient]}
1111
human-approval/v1: {capability: product-owner, passing_verdicts: [approved]}
1212
deployment-release/v1: {capability: ci-automation, passing_verdicts: [pass]}
13+
dependency-validation/v1: {capability: ci-automation, passing_verdicts: [pass]}

policy/evidence/producer-authorization.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,4 @@ predicates:
1212
solution-sufficiency/v1: {producer_classes: [authorized-human, authorized-agent], minimum: {Protected: authenticated}}
1313
human-approval/v1: {producer_classes: [product-owner], minimum: {Protected: authenticated}}
1414
deployment-release/v1: {producer_classes: [trusted-ci], minimum: {Protected: trusted}}
15+
dependency-validation/v1: {producer_classes: [trusted-ci], minimum: {Lean: trusted, Standard: trusted, Protected: trusted}}

policy/metrics/definitions-v1.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
version: 1
2+
privacy:
3+
optional: true
4+
aggregate_by: [repository, workflow, change_characteristics, period]
5+
prohibited_uses: [individual_ranking, employee_surveillance, lines_of_code_productivity]
6+
retention_days: 180
7+
metrics:
8+
flow: [issue_to_pr_seconds, implementation_seconds, end_to_end_seconds, abandonment_rate]
9+
quality: [correction_cycles, post_merge_defects, substantial_rewrites]
10+
stability: [ci_retries, reverts, failed_deployments]
11+
review_burden: [review_seconds, review_cycles]
12+
cost: [compute_seconds, token_cost]
13+
complexity: [complexity_delta]
14+
agent_effectiveness: [recommendation_outcome_alignment]

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "software-engineering-process"
7-
version = "1.1.0"
7+
version = "1.2.0"
88
description = "Technology-neutral engineering policy and assurance platform"
99
readme = "README.md"
1010
requires-python = ">=3.11"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","additionalProperties":false,"properties":{"acceptance_clarity":{"type":["string","null"]},"boundedness":{"type":["string","null"]},"deterministic_validation":{"type":["string","null"]},"repository_test_strength":{"type":["string","null"]},"architectural_novelty":{"type":["string","null"]},"tacit_domain_knowledge":{"type":["string","null"]},"stakeholder_negotiation":{"type":["string","null"]},"blast_radius":{"type":["string","null"]},"reversibility":{"type":["string","null"]}}}

0 commit comments

Comments
 (0)