Skip to content

Commit 10e3f14

Browse files
feat: ship universal response decision front door
Merge PR #16 after CI and Release Preflight passed. Ships the Universal Response and Decision Map front door while preserving the deterministic Decision Lab, browser-local privacy boundary, and human decision authority.
1 parent b14dc0f commit 10e3f14

15 files changed

Lines changed: 452 additions & 350 deletions

‎.github/workflows/ci.yml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ jobs:
1717
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
1818
with:
1919
persist-credentials: false
20+
ref: ${{ github.event.pull_request.head.sha || github.sha }}
2021
- name: Set up Node
2122
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
2223
with:

‎.github/workflows/release-preflight.yml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ jobs:
2929
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
3030
with:
3131
persist-credentials: false
32+
ref: ${{ github.event.pull_request.head.sha || github.sha }}
3233
- name: Set up Node
3334
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
3435
with:

‎README.md‎

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,46 @@
11
# Frontier Decision Engine
22

3-
**Bring a messy situation. Find the decision. Test choices when useful. Keep the final judgment human-owned.**
3+
**Bring the whole mess. FDE gives you something useful back, helps make uncertainty visible, and keeps the final decision human-owned.**
44

55
[Open the live application](https://bridgenode7.com/frontier-decision-engine/)
66

77
![Frontier Decision Engine](docs/screenshots/reference/desktop-decision-frame.png)
88

9-
## Start with Decision Rescue
9+
## Start with one input
1010

11-
Decision Rescue accepts ordinary language first. A visitor can put down what is happening, choose one useful next action, and build a Decision Frame without knowing decision-science terminology.
11+
The FDE front door starts with one free-form input. Put down a problem, question, worry, idea, decision, or a complete mess. FDE responds immediately with a provisional Decision Map showing only what can be safely organized from the words provided.
1212

13-
FDE preserves what the person confirms and does not pretend browser JavaScript inferred evidence, probabilities, thresholds, scores, or a recommendation. A partial Decision Frame is a valid stopping point.
13+
The map is a draft, not a hidden machine decision. Possible signals stay possible until a person confirms them. When enough explicit structure exists, the map can continue into the deterministic Decision Lab. Otherwise, it offers a simple path to shape the missing pieces without pretending the missing information is known.
1414

15-
Decision Rescue uses tab-scoped session storage so an accidental refresh can recover in-progress framing. It does not treat the original brain dump as model evidence. When a complete frame continues into the Decision Lab, existing browser-saved Lab work is never replaced without an explicit human choice.
15+
The experience is designed around a simple rule: **every meaningful input receives a useful response, and questions are used only when human judgment is actually needed to move the decision forward.**
1616

17-
## What the Decision Lab does
17+
## Decision Map
1818

19-
- Frames the decision, goals, choices, and plausible futures.
20-
- Evaluates the same choices across explicit goals and named conditions.
21-
- Shows unmet goals, ties, incomplete outcomes, and vulnerabilities.
22-
- Keeps final selection, rationale, and next action human-owned.
23-
- Exports a portable decision file and a readable decision summary.
19+
The map can show:
2420

25-
Guided work supports 2–4 objectives, 2–3 choices, and 2–4 plausible futures. The minimum comparison is a real 2 × 2 × 2 model. FDE never fills missing analytical inputs on the person's behalf.
21+
- a possible decision;
22+
- choices mentioned explicitly;
23+
- things that may matter;
24+
- conditions that could change the answer; and
25+
- the smallest useful next step.
2626

27-
The included ready example is a **synthetic critical-material source-qualification case**. It does not describe or certify a real supplier, material, capacity, compliance status, or investment.
27+
This is deliberately conservative. The browser does not call a remote AI service, retrieve outside facts, invent probabilities, or promote provisional text into verified evidence.
2828

29-
## Privacy and authority
29+
## Decision Lab
3030

31-
The application is static and browser-local. It has no backend, account system, analytics, telemetry, cookies, or default upload endpoint.
31+
When a person confirms enough structure, FDE can hand the work into its existing deterministic comparison engine. Guided work supports 2–4 objectives, 2–3 choices, and 2–4 plausible futures. The minimum comparison is a true 2 × 2 × 2 model.
3232

33-
Browser storage is a convenience, not encrypted confidential storage. Do not enter information that requires an approved confidential or controlled-data environment.
33+
The comparison informs. A person decides.
3434

35-
FDE provides decision support. It does not approve, authorize, certify, qualify, consent, or make an investment decision. The comparison informs; a person decides.
35+
## Synthetic reference
3636

37-
## Run locally
37+
The repository includes a synthetic critical-material source-qualification case to demonstrate the formal Decision Lab without making claims about a real supplier, material, capacity, compliance status, or investment.
3838

39-
```bash
40-
node scripts/run-python.mjs -m http.server 8000 --directory site
41-
```
39+
## Privacy and authority
40+
41+
The application is static and browser-local. It has no backend, account system, analytics, telemetry, cookies, remote AI provider, or default upload endpoint. Session recovery and browser autosave are convenience features, not encrypted confidential storage.
4242

43-
Open `http://localhost:8000`.
43+
FDE provides decision support. It does not approve, authorize, certify, qualify, consent, or make an investment decision.
4444

4545
## Verify
4646

@@ -53,14 +53,14 @@ npm ci --ignore-scripts --no-audit --no-fund
5353
npm run check
5454
```
5555

56-
`npm run check` runs the repository's unit, version, integrity, browser, Decision Rescue, and release-closeout gates. Current generated counts and versions are recorded in [`project-facts.json`](project-facts.json).
56+
Generated release facts and current application identity are recorded in [`project-facts.json`](project-facts.json). The full verification gate is defined by the repository's `npm run check` command.
5757

5858
## Documentation
5959

6060
- [Architecture](docs/ARCHITECTURE.md)
6161
- [Methodology](docs/METHODOLOGY.md)
6262
- [Privacy](docs/PRIVACY.md)
63-
- [Releases](docs/RELEASING.md)
63+
- [Releasing](docs/RELEASING.md)
6464

6565
## Project
6666

‎docs/ARCHITECTURE.md‎

Lines changed: 30 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,55 +2,54 @@
22

33
Frontier Decision Engine is a static browser application served from `site/`. There is no backend or account service.
44

5-
## Runtime
5+
## Human-first runtime
66

7-
- Decision Rescue is the human-language front door.
8-
- Decision Lab is the structured six-stage comparison workflow.
9-
- The ranking engine is deterministic and runs in the browser.
10-
- Portable decision schemas remain versioned under `schemas/`.
11-
- Validation and release checks run from `scripts/` and GitHub Actions.
7+
The public root is a one-input response experience. A person can write a problem, question, worry, idea, decision, or incomplete thought without knowing decision-science vocabulary. FDE immediately returns a useful response and a provisional Decision Map.
128

13-
## Human-first entry
9+
The Decision Map can show:
1410

15-
The root experience accepts bounded inert text and asks for the smallest useful human contribution next. It does not claim to understand arbitrary prose, retrieve external facts, infer evidence, assign probabilities, create scores, or recommend an action.
11+
- a possible decision;
12+
- choices mentioned explicitly;
13+
- things that may matter;
14+
- conditions that could change the answer; and
15+
- the most useful next step.
1616

17-
A Decision Frame can remain incomplete and still be useful. Full comparison is available only after the person has confirmed a decision, at least two goals, two choices, and two plausible futures.
17+
Possible elements are not silently promoted into facts. The map is a draft until a person confirms the information that belongs in the formal decision model.
1818

19-
Guided comparison supports:
19+
## Minimum necessary human contribution
2020

21-
- 2–4 objectives
22-
- 2–3 strategies
23-
- 2–4 scenarios
21+
FDE follows this interaction rule:
2422

25-
The ready example remains a larger synthetic reference case. Missing thresholds, scores, modifiers, critical flags, and evidence stay missing until a person supplies them.
23+
> Continue without bothering the person when the system can proceed safely; otherwise ask for the smallest human contribution that materially advances the decision.
2624
27-
## Browser storage
25+
No normal input is treated as a dead end. Empty, vague, messy, ambiguous, and non-decision input receive a useful orientation response rather than an error-only state.
2826

29-
Decision Rescue uses tab-scoped session storage for accidental-refresh recovery. The original starting context remains context only and is not scored or promoted into model evidence.
27+
## Formal Decision Lab
3028

31-
Decision Lab uses bounded browser autosave for in-progress structured work. If a browser draft already exists, Decision Rescue does not replace it silently; replacement requires an explicit human choice.
29+
Once enough explicit structure exists and the person confirms the map, the confirmed information is handed into the existing deterministic Decision Lab. Guided comparison supports 2–4 objectives, 2–3 strategies, and 2–4 scenarios. The minimum comparison is a true 2 × 2 × 2 model.
3230

33-
Browser storage is not encrypted confidential storage. Local files are processed in the browser and are not uploaded by the default application.
31+
The comparison core is isolated from the Map layer so UX changes do not silently alter ranking semantics. Missing analytical values are not fabricated.
3432

35-
## Decision result
33+
## Epistemic boundaries
3634

37-
The engine evaluates explicit human-supplied inputs across the same named futures. It preserves honest outcomes including:
35+
The public experience separates:
3836

39-
- a unique leader under the tested model;
40-
- tied leaders;
41-
- no acceptable strategy under declared boundaries; and
42-
- insufficient data.
37+
1. **You said** — the original human input.
38+
2. **FDE organized** — provisional structure derived from safe, explicit textual patterns.
39+
3. **You confirmed** — information promoted into the formal model by a human.
40+
4. **FDE calculated** — deterministic output from confirmed model inputs.
41+
5. **You decided** — the human-owned choice, rationale, and next action.
4342

44-
The result is advisory. A person selects the strategy and records the rationale and next action.
43+
The default runtime does not use a remote AI provider, retrieve external facts, infer evidence, assign probabilities, or make the final decision.
4544

46-
## Compatibility
45+
## Browser storage
4746

48-
Legacy completed decision schema `0.2.10` remains supported. Optional decision-semantics state uses schema `0.3.0`. The guided browser editor is intentionally bounded even though portable schemas may permit broader cases.
47+
The universal response experience uses bounded tab-scoped session storage for accidental-refresh recovery. Decision Lab uses bounded browser autosave for structured work. Browser storage is a convenience, not encrypted confidential storage.
4948

50-
The deterministic ranking core is isolated from the human-entry layer so UX changes do not silently alter comparison semantics.
49+
## Privacy and security
5150

52-
## Security and privacy boundaries
51+
The public application has no backend, account system, analytics, telemetry, cookies, remote AI provider, or default upload endpoint. User input is rendered as text, not executable markup. Local files remain in the browser unless the person explicitly downloads or shares them.
5352

54-
The public runtime has no account system, analytics, telemetry, remote AI provider, or default upload endpoint. User-entered text is rendered as text rather than executable markup.
53+
## Long-term direction
5554

56-
Generated visualizations and software calculations are not evidence. FDE does not provide legal approval, organizational authorization, certification, qualification, consent, or investment approval.
55+
The architecture intentionally leaves room for an optional assisted-understanding adapter and later Decision Memory without making either a dependency of the deterministic core. Any future semantic provider must produce provisional output that passes through the same human-confirmation boundary.

‎package.json‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"description": "Browser-local, human-governed decision support for choices under deep uncertainty.",
77
"scripts": {
88
"test": "node --test",
9+
"test:universal": "node --test tests/universal-response.test.js",
910
"facts": "node scripts/generate-project-facts.mjs",
1011
"facts:check": "node scripts/validate-project-facts.mjs",
1112
"validate": "node scripts/run-python.mjs scripts/validate_repository.py",
@@ -18,8 +19,6 @@
1819
"validate:version": "node scripts/run-python.mjs scripts/validate_version_integrity.py",
1920
"test:closeout": "node scripts/run-python.mjs scripts/browser_closeout_regressions.py"
2021
},
21-
"engines": {
22-
"node": ">=22"
23-
},
22+
"engines": { "node": ">=22" },
2423
"license": "Apache-2.0"
2524
}

‎project-facts.json‎

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@
22
"applicationVersion": "0.3.3",
33
"schemaVersions": {
44
"decision": "0.2.10",
5-
"semanticDecision": "0.3.0",
6-
"opvCase": "0.1.0"
5+
"semanticDecision": "0.3.0"
76
},
8-
"testCount": 143,
9-
"discoveredHashRouteLiteralCount": 6,
7+
"testCount": 148,
8+
"discoveredHashRouteLiteralCount": 7,
109
"browserModes": [
1110
"desktop-light",
1211
"mobile-light",
@@ -16,11 +15,5 @@
1615
"reflow-400-equivalent",
1716
"forced-colors"
1817
],
19-
"manifestEntryCount": 35,
20-
"retainedReferenceArtifactItemCounts": {
21-
"profiles/phenomena/profile.json": 5,
22-
"site/data/experiences.json": 41,
23-
"site/data/morphology.json": 209,
24-
"site/data/references.json": 53
25-
}
18+
"manifestEntryCount": 37
2619
}

0 commit comments

Comments
 (0)