Repository files navigation

SECTOR 305 title screen with adaptive watch directive

SECTOR 305

Miami on the map. Console on the glass.
A doctrine-driven fictional PSAP dispatch simulator where process—not spectacle—decides the watch.

CINode 20+TypeScriptLicense MIT

South Beach swagger at the door. A ruthless instrument on the glass.

What the hell is this?

SECTOR 305 is a deterministic emergency-communications training simulation set inside a fictional Miami-area public-safety answering point. You work the A-console: own the queue, verify imperfect locations, classify priority, build the response, protect airtime, obtain readbacks, maintain unit status, and leave a defensible record.

The simulation does not grade whether the story had a heroic ending. It grades whether your process held together under pressure.

This is not an arcade city-management game, a production CAD, or an official certification product. It is a deep fictional training instrument built to make operational discipline playable.

The glass

SECTOR 305 live A-console with incident queue, CFS detail, unit board, radio bank, GIS sector plate, live grader, and adaptive focus

The console puts the full watch in one coherent instrument:

  • Priority-and-age incident queue with imperfect information
  • CFS classification, location confidence, safety flags, and radio composition
  • Police, fire, EMS, air, hospital, and special-use presentation boards
  • Last-known unit tracks over a layered Miami GIS sector plate
  • Fictional built-in channel bank with a clean local-adapter seam
  • Live hard-fail and coaching feedback
  • Keyboard-complete checkride path
  • Original title music featuring David Lombardo on lead guitar
  • Seventeen-track original scenario score with automatic radio ducking
  • Dedicated score desk: on/off, previous/next, direct track selection, and bed level

Music that knows when to get out of the way

SECTOR 305 scenario score desk with seventeen original tracks, bed controls, and automatic radio ducking

The title performance crosses into a rotating watch score when the console opens. Seventeen original David Lombardo tracks are leveled for background use, looped per watch, and automatically ducked beneath dispatch and unit traffic. The score desk exposes the whole catalog without mixing music controls into the radio path.

The loop that remembers

SECTOR 305 carries performance forward without points, streak bait, or fake credentials. Every completed watch updates a local mastery record. Doctrine findings become operational domains—location, priority, assignment, status, radio, tempo, documentation, safety, multi-call awareness, and information constraints.

The next launch arrives with one explicit objective:

WATCH DIRECTIVE · LOCATION
Verify before you launch.

A clean follow-up watch does not erase the lesson. It converts the objective into retention: prove that the discipline still holds under pressure.

flowchart LR
A["Imperfect call enters the queue"] --> B["Operator acts on knowable information"]
B --> C["Deterministic runtime + live grader"]
C --> D["Clinical after-action review"]
D --> E["Persistent next-watch objective"]
E --> A
Loading

Pass clean—or learn exactly why you did not

Passing SECTOR 305 checkride debriefFailed SECTOR 305 checkride with doctrine findings
Qualified
Zero hard fails. The next watch asks you to hold the standard.
Corrective
Evidence-backed failures become the next watch's operating focus.

Why it hits differently

SystemWhat it means in the watch
Deterministic simulation kernelThe same seed and command stream reproduce the same evaluation.
Information-set fairnessHidden scenario truth cannot grade you until the relevant cue becomes knowable.
Doctrine packsPriority, statuses, assignment, radio, location, and rubric law are data-driven.
Sacred replay artifactA SessionRecord stores commands; the engine re-derives state and the debrief.
Adaptive masteryPersistent findings shape the next objective without turning performance into points.
Restrained presentationNeon belongs to the shell. The live CAD uses EFIS-like semantic color.
Authentic textureCity GIS atmosphere, imperfect last-known mapping, fictional channels, and an original Miami score ground the fiction.

Architecture

packs/* fictional doctrine and rubric data
↓
packages/core pure TypeScript runtime · no DOM · seeded clock
↓
PlayerCommand → SectorState → GradeEvent → Debrief
↓ ↓
packages/web SessionRecord replay + adaptive mastery
React console · GIS plate · audio director · Playwright acceptance

The core rule is simple: replaying a SessionRecord headlessly must reproduce the same hard-fail multiset as the UI session.

Run the watch

Requirements: Node.js 20 or newer.

git clone https://github.com/coldbricks/SECTOR-305.git
cd SECTOR-305
npm install
npm run dev

Open http://127.0.0.1:3050, let the title track breathe, then select BEGIN.

Useful commands:

npm test# core invariants and doctrine behavior
npm run test:e2e # full browser acceptance
npm run typecheck # strict TypeScript
npm run build # production build
npm run validate:packs # doctrine-pack validation
npm run sim -- fail # intentional five-finding checkride
npm run sim -- pass # clean canonical checkride

Verification posture

Current local milestone:

  • 107 core assertions across 17 test files
  • 10 end-to-end browser scenarios
  • Deterministic pass/fail simulation demos
  • Pack validation covering 14 natures and 24 rubric rules
  • Responsive acceptance at 1471px, 1280×720, and 760px
  • Native keyboard controls, focus visibility, reduced-motion support, and protected radio intelligibility

CI repeats typechecking, core tests, production build, pack validation, both simulations, and Playwright acceptance.

Data, audio, and attribution

  • Geographic atmosphere is curated from City of Miami GIS Open Data and remains explicitly non-operational.
  • SE305 zones, units, incidents, doctrine, and scenario truth are fictional training content.
  • The public channel bank is independently authored fictional training data. Premium third-party radio exports are absent from the public history.
  • Original music: “Dispatch in Miami” plus seventeen unique scenario-score masters by David Lombardo.
  • Audio is copyright © 2026 David Lombardo, all rights reserved, and is separate from the source-code license.

See THIRD_PARTY_NOTICES.md for the publication boundary.

Safety and honesty

SECTOR 305 is a fictional training simulation. It is not affiliated with the City of Miami, Miami-Dade County, any PSAP, RadioReference, APCO, NENA, or IAED. It is not a substitute for agency policy, supervised training, or production dispatch software. Completing an in-product track grants no real credential.

Read deeper

Contributing

The highest-value contribution is adversarial operational review. If a grade is unfair, a doctrine rule is incoherent, or the console teaches the wrong habit, open an issue with reproducible evidence and the relevant scenario clock.

See CONTRIBUTING.md before submitting changes.

License

Source code and original documentation are available under the MIT License. Music remains copyright © 2026 David Lombardo, all rights reserved; see THIRD_PARTY_NOTICES.md.

About

Doctrine-driven Miami dispatch simulation with deterministic grading, adaptive mastery, layered GIS, and an original 17-track score.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

SECTOR 305 title screen with adaptive watch directive

SECTOR 305

Miami on the map. Console on the glass.
A doctrine-driven fictional PSAP dispatch simulator where process—not spectacle—decides the watch.

CINode 20+TypeScriptLicense MIT

South Beach swagger at the door. A ruthless instrument on the glass.

What the hell is this?

SECTOR 305 is a deterministic emergency-communications training simulation set inside a fictional Miami-area public-safety answering point. You work the A-console: own the queue, verify imperfect locations, classify priority, build the response, protect airtime, obtain readbacks, maintain unit status, and leave a defensible record.

The simulation does not grade whether the story had a heroic ending. It grades whether your process held together under pressure.

This is not an arcade city-management game, a production CAD, or an official certification product. It is a deep fictional training instrument built to make operational discipline playable.

The glass

SECTOR 305 live A-console with incident queue, CFS detail, unit board, radio bank, GIS sector plate, live grader, and adaptive focus

The console puts the full watch in one coherent instrument:

  • Priority-and-age incident queue with imperfect information
  • CFS classification, location confidence, safety flags, and radio composition
  • Police, fire, EMS, air, hospital, and special-use presentation boards
  • Last-known unit tracks over a layered Miami GIS sector plate
  • Fictional built-in channel bank with a clean local-adapter seam
  • Live hard-fail and coaching feedback
  • Keyboard-complete checkride path
  • Original title music featuring David Lombardo on lead guitar
  • Seventeen-track original scenario score with automatic radio ducking
  • Dedicated score desk: on/off, previous/next, direct track selection, and bed level

Music that knows when to get out of the way

SECTOR 305 scenario score desk with seventeen original tracks, bed controls, and automatic radio ducking

The title performance crosses into a rotating watch score when the console opens. Seventeen original David Lombardo tracks are leveled for background use, looped per watch, and automatically ducked beneath dispatch and unit traffic. The score desk exposes the whole catalog without mixing music controls into the radio path.

The loop that remembers

SECTOR 305 carries performance forward without points, streak bait, or fake credentials. Every completed watch updates a local mastery record. Doctrine findings become operational domains—location, priority, assignment, status, radio, tempo, documentation, safety, multi-call awareness, and information constraints.

The next launch arrives with one explicit objective:

WATCH DIRECTIVE · LOCATION
Verify before you launch.

A clean follow-up watch does not erase the lesson. It converts the objective into retention: prove that the discipline still holds under pressure.

flowchart LR
A["Imperfect call enters the queue"] --> B["Operator acts on knowable information"]
B --> C["Deterministic runtime + live grader"]
C --> D["Clinical after-action review"]
D --> E["Persistent next-watch objective"]
E --> A
Loading

Pass clean—or learn exactly why you did not

Passing SECTOR 305 checkride debriefFailed SECTOR 305 checkride with doctrine findings
Qualified
Zero hard fails. The next watch asks you to hold the standard.
Corrective
Evidence-backed failures become the next watch's operating focus.

Why it hits differently

SystemWhat it means in the watch
Deterministic simulation kernelThe same seed and command stream reproduce the same evaluation.
Information-set fairnessHidden scenario truth cannot grade you until the relevant cue becomes knowable.
Doctrine packsPriority, statuses, assignment, radio, location, and rubric law are data-driven.
Sacred replay artifactA SessionRecord stores commands; the engine re-derives state and the debrief.
Adaptive masteryPersistent findings shape the next objective without turning performance into points.
Restrained presentationNeon belongs to the shell. The live CAD uses EFIS-like semantic color.
Authentic textureCity GIS atmosphere, imperfect last-known mapping, fictional channels, and an original Miami score ground the fiction.

Architecture

packs/* fictional doctrine and rubric data
↓
packages/core pure TypeScript runtime · no DOM · seeded clock
↓
PlayerCommand → SectorState → GradeEvent → Debrief
↓ ↓
packages/web SessionRecord replay + adaptive mastery
React console · GIS plate · audio director · Playwright acceptance

The core rule is simple: replaying a SessionRecord headlessly must reproduce the same hard-fail multiset as the UI session.

Run the watch

Requirements: Node.js 20 or newer.

git clone https://github.com/coldbricks/SECTOR-305.git
cd SECTOR-305
npm install
npm run dev

Open http://127.0.0.1:3050, let the title track breathe, then select BEGIN.

Useful commands:

npm test# core invariants and doctrine behavior
npm run test:e2e # full browser acceptance
npm run typecheck # strict TypeScript
npm run build # production build
npm run validate:packs # doctrine-pack validation
npm run sim -- fail # intentional five-finding checkride
npm run sim -- pass # clean canonical checkride

Verification posture

Current local milestone:

  • 107 core assertions across 17 test files
  • 10 end-to-end browser scenarios
  • Deterministic pass/fail simulation demos
  • Pack validation covering 14 natures and 24 rubric rules
  • Responsive acceptance at 1471px, 1280×720, and 760px
  • Native keyboard controls, focus visibility, reduced-motion support, and protected radio intelligibility

CI repeats typechecking, core tests, production build, pack validation, both simulations, and Playwright acceptance.

Data, audio, and attribution

  • Geographic atmosphere is curated from City of Miami GIS Open Data and remains explicitly non-operational.
  • SE305 zones, units, incidents, doctrine, and scenario truth are fictional training content.
  • The public channel bank is independently authored fictional training data. Premium third-party radio exports are absent from the public history.
  • Original music: “Dispatch in Miami” plus seventeen unique scenario-score masters by David Lombardo.
  • Audio is copyright © 2026 David Lombardo, all rights reserved, and is separate from the source-code license.

See THIRD_PARTY_NOTICES.md for the publication boundary.

Safety and honesty

SECTOR 305 is a fictional training simulation. It is not affiliated with the City of Miami, Miami-Dade County, any PSAP, RadioReference, APCO, NENA, or IAED. It is not a substitute for agency policy, supervised training, or production dispatch software. Completing an in-product track grants no real credential.

Read deeper

Contributing

The highest-value contribution is adversarial operational review. If a grade is unfair, a doctrine rule is incoherent, or the console teaches the wrong habit, open an issue with reproducible evidence and the relevant scenario clock.

See CONTRIBUTING.md before submitting changes.

License

Source code and original documentation are available under the MIT License. Music remains copyright © 2026 David Lombardo, all rights reserved; see THIRD_PARTY_NOTICES.md.

About

Doctrine-driven Miami dispatch simulation with deterministic grading, adaptive mastery, layered GIS, and an original 17-track score.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SECTOR 305 title screen with adaptive watch directive

SECTOR 305

Miami on the map. Console on the glass.
A doctrine-driven fictional PSAP dispatch simulator where process—not spectacle—decides the watch.

CINode 20+TypeScriptLicense MIT

South Beach swagger at the door. A ruthless instrument on the glass.

What the hell is this?

SECTOR 305 is a deterministic emergency-communications training simulation set inside a fictional Miami-area public-safety answering point. You work the A-console: own the queue, verify imperfect locations, classify priority, build the response, protect airtime, obtain readbacks, maintain unit status, and leave a defensible record.

The simulation does not grade whether the story had a heroic ending. It grades whether your process held together under pressure.

This is not an arcade city-management game, a production CAD, or an official certification product. It is a deep fictional training instrument built to make operational discipline playable.

The glass

SECTOR 305 live A-console with incident queue, CFS detail, unit board, radio bank, GIS sector plate, live grader, and adaptive focus

The console puts the full watch in one coherent instrument:

  • Priority-and-age incident queue with imperfect information
  • CFS classification, location confidence, safety flags, and radio composition
  • Police, fire, EMS, air, hospital, and special-use presentation boards
  • Last-known unit tracks over a layered Miami GIS sector plate
  • Fictional built-in channel bank with a clean local-adapter seam
  • Live hard-fail and coaching feedback
  • Keyboard-complete checkride path
  • Original title music featuring David Lombardo on lead guitar
  • Seventeen-track original scenario score with automatic radio ducking
  • Dedicated score desk: on/off, previous/next, direct track selection, and bed level

Music that knows when to get out of the way

SECTOR 305 scenario score desk with seventeen original tracks, bed controls, and automatic radio ducking

The title performance crosses into a rotating watch score when the console opens. Seventeen original David Lombardo tracks are leveled for background use, looped per watch, and automatically ducked beneath dispatch and unit traffic. The score desk exposes the whole catalog without mixing music controls into the radio path.

The loop that remembers

SECTOR 305 carries performance forward without points, streak bait, or fake credentials. Every completed watch updates a local mastery record. Doctrine findings become operational domains—location, priority, assignment, status, radio, tempo, documentation, safety, multi-call awareness, and information constraints.

The next launch arrives with one explicit objective:

WATCH DIRECTIVE · LOCATION
Verify before you launch.

A clean follow-up watch does not erase the lesson. It converts the objective into retention: prove that the discipline still holds under pressure.

flowchart LR
A["Imperfect call enters the queue"] --> B["Operator acts on knowable information"]
B --> C["Deterministic runtime + live grader"]
C --> D["Clinical after-action review"]
D --> E["Persistent next-watch objective"]
E --> A
Loading

Pass clean—or learn exactly why you did not

Passing SECTOR 305 checkride debriefFailed SECTOR 305 checkride with doctrine findings
Qualified
Zero hard fails. The next watch asks you to hold the standard.
Corrective
Evidence-backed failures become the next watch's operating focus.

Why it hits differently

SystemWhat it means in the watch
Deterministic simulation kernelThe same seed and command stream reproduce the same evaluation.
Information-set fairnessHidden scenario truth cannot grade you until the relevant cue becomes knowable.
Doctrine packsPriority, statuses, assignment, radio, location, and rubric law are data-driven.
Sacred replay artifactA SessionRecord stores commands; the engine re-derives state and the debrief.
Adaptive masteryPersistent findings shape the next objective without turning performance into points.
Restrained presentationNeon belongs to the shell. The live CAD uses EFIS-like semantic color.
Authentic textureCity GIS atmosphere, imperfect last-known mapping, fictional channels, and an original Miami score ground the fiction.

Architecture

packs/* fictional doctrine and rubric data
↓
packages/core pure TypeScript runtime · no DOM · seeded clock
↓
PlayerCommand → SectorState → GradeEvent → Debrief
↓ ↓
packages/web SessionRecord replay + adaptive mastery
React console · GIS plate · audio director · Playwright acceptance

The core rule is simple: replaying a SessionRecord headlessly must reproduce the same hard-fail multiset as the UI session.

Run the watch

Requirements: Node.js 20 or newer.

git clone https://github.com/coldbricks/SECTOR-305.git
cd SECTOR-305
npm install
npm run dev

Open http://127.0.0.1:3050, let the title track breathe, then select BEGIN.

Useful commands:

npm test# core invariants and doctrine behavior
npm run test:e2e # full browser acceptance
npm run typecheck # strict TypeScript
npm run build # production build
npm run validate:packs # doctrine-pack validation
npm run sim -- fail # intentional five-finding checkride
npm run sim -- pass # clean canonical checkride

Verification posture

Current local milestone:

  • 107 core assertions across 17 test files
  • 10 end-to-end browser scenarios
  • Deterministic pass/fail simulation demos
  • Pack validation covering 14 natures and 24 rubric rules
  • Responsive acceptance at 1471px, 1280×720, and 760px
  • Native keyboard controls, focus visibility, reduced-motion support, and protected radio intelligibility

CI repeats typechecking, core tests, production build, pack validation, both simulations, and Playwright acceptance.

Data, audio, and attribution

  • Geographic atmosphere is curated from City of Miami GIS Open Data and remains explicitly non-operational.
  • SE305 zones, units, incidents, doctrine, and scenario truth are fictional training content.
  • The public channel bank is independently authored fictional training data. Premium third-party radio exports are absent from the public history.
  • Original music: “Dispatch in Miami” plus seventeen unique scenario-score masters by David Lombardo.
  • Audio is copyright © 2026 David Lombardo, all rights reserved, and is separate from the source-code license.

See THIRD_PARTY_NOTICES.md for the publication boundary.

Safety and honesty

SECTOR 305 is a fictional training simulation. It is not affiliated with the City of Miami, Miami-Dade County, any PSAP, RadioReference, APCO, NENA, or IAED. It is not a substitute for agency policy, supervised training, or production dispatch software. Completing an in-product track grants no real credential.

Read deeper

Contributing

The highest-value contribution is adversarial operational review. If a grade is unfair, a doctrine rule is incoherent, or the console teaches the wrong habit, open an issue with reproducible evidence and the relevant scenario clock.

See CONTRIBUTING.md before submitting changes.

License

Source code and original documentation are available under the MIT License. Music remains copyright © 2026 David Lombardo, all rights reserved; see THIRD_PARTY_NOTICES.md.

About

Doctrine-driven Miami dispatch simulation with deterministic grading, adaptive mastery, layered GIS, and an original 17-track score.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SECTOR 305 title screen with adaptive watch directive

SECTOR 305

Miami on the map. Console on the glass.
A doctrine-driven fictional PSAP dispatch simulator where process—not spectacle—decides the watch.

CINode 20+TypeScriptLicense MIT

South Beach swagger at the door. A ruthless instrument on the glass.

What the hell is this?

SECTOR 305 is a deterministic emergency-communications training simulation set inside a fictional Miami-area public-safety answering point. You work the A-console: own the queue, verify imperfect locations, classify priority, build the response, protect airtime, obtain readbacks, maintain unit status, and leave a defensible record.

The simulation does not grade whether the story had a heroic ending. It grades whether your process held together under pressure.

This is not an arcade city-management game, a production CAD, or an official certification product. It is a deep fictional training instrument built to make operational discipline playable.

The glass

SECTOR 305 live A-console with incident queue, CFS detail, unit board, radio bank, GIS sector plate, live grader, and adaptive focus

The console puts the full watch in one coherent instrument:

  • Priority-and-age incident queue with imperfect information
  • CFS classification, location confidence, safety flags, and radio composition
  • Police, fire, EMS, air, hospital, and special-use presentation boards
  • Last-known unit tracks over a layered Miami GIS sector plate
  • Fictional built-in channel bank with a clean local-adapter seam
  • Live hard-fail and coaching feedback
  • Keyboard-complete checkride path
  • Original title music featuring David Lombardo on lead guitar
  • Seventeen-track original scenario score with automatic radio ducking
  • Dedicated score desk: on/off, previous/next, direct track selection, and bed level

Music that knows when to get out of the way

SECTOR 305 scenario score desk with seventeen original tracks, bed controls, and automatic radio ducking

The title performance crosses into a rotating watch score when the console opens. Seventeen original David Lombardo tracks are leveled for background use, looped per watch, and automatically ducked beneath dispatch and unit traffic. The score desk exposes the whole catalog without mixing music controls into the radio path.

The loop that remembers

SECTOR 305 carries performance forward without points, streak bait, or fake credentials. Every completed watch updates a local mastery record. Doctrine findings become operational domains—location, priority, assignment, status, radio, tempo, documentation, safety, multi-call awareness, and information constraints.

The next launch arrives with one explicit objective:

WATCH DIRECTIVE · LOCATION
Verify before you launch.

A clean follow-up watch does not erase the lesson. It converts the objective into retention: prove that the discipline still holds under pressure.

flowchart LR
A["Imperfect call enters the queue"] --> B["Operator acts on knowable information"]
B --> C["Deterministic runtime + live grader"]
C --> D["Clinical after-action review"]
D --> E["Persistent next-watch objective"]
E --> A
Loading

Pass clean—or learn exactly why you did not

Passing SECTOR 305 checkride debriefFailed SECTOR 305 checkride with doctrine findings
Qualified
Zero hard fails. The next watch asks you to hold the standard.
Corrective
Evidence-backed failures become the next watch's operating focus.

Why it hits differently

SystemWhat it means in the watch
Deterministic simulation kernelThe same seed and command stream reproduce the same evaluation.
Information-set fairnessHidden scenario truth cannot grade you until the relevant cue becomes knowable.
Doctrine packsPriority, statuses, assignment, radio, location, and rubric law are data-driven.
Sacred replay artifactA SessionRecord stores commands; the engine re-derives state and the debrief.
Adaptive masteryPersistent findings shape the next objective without turning performance into points.
Restrained presentationNeon belongs to the shell. The live CAD uses EFIS-like semantic color.
Authentic textureCity GIS atmosphere, imperfect last-known mapping, fictional channels, and an original Miami score ground the fiction.

Architecture

packs/* fictional doctrine and rubric data
↓
packages/core pure TypeScript runtime · no DOM · seeded clock
↓
PlayerCommand → SectorState → GradeEvent → Debrief
↓ ↓
packages/web SessionRecord replay + adaptive mastery
React console · GIS plate · audio director · Playwright acceptance

The core rule is simple: replaying a SessionRecord headlessly must reproduce the same hard-fail multiset as the UI session.

Run the watch

Requirements: Node.js 20 or newer.

git clone https://github.com/coldbricks/SECTOR-305.git
cd SECTOR-305
npm install
npm run dev

Open http://127.0.0.1:3050, let the title track breathe, then select BEGIN.

Useful commands:

npm test# core invariants and doctrine behavior
npm run test:e2e # full browser acceptance
npm run typecheck # strict TypeScript
npm run build # production build
npm run validate:packs # doctrine-pack validation
npm run sim -- fail # intentional five-finding checkride
npm run sim -- pass # clean canonical checkride

Verification posture

Current local milestone:

  • 107 core assertions across 17 test files
  • 10 end-to-end browser scenarios
  • Deterministic pass/fail simulation demos
  • Pack validation covering 14 natures and 24 rubric rules
  • Responsive acceptance at 1471px, 1280×720, and 760px
  • Native keyboard controls, focus visibility, reduced-motion support, and protected radio intelligibility

CI repeats typechecking, core tests, production build, pack validation, both simulations, and Playwright acceptance.

Data, audio, and attribution

  • Geographic atmosphere is curated from City of Miami GIS Open Data and remains explicitly non-operational.
  • SE305 zones, units, incidents, doctrine, and scenario truth are fictional training content.
  • The public channel bank is independently authored fictional training data. Premium third-party radio exports are absent from the public history.
  • Original music: “Dispatch in Miami” plus seventeen unique scenario-score masters by David Lombardo.
  • Audio is copyright © 2026 David Lombardo, all rights reserved, and is separate from the source-code license.

See THIRD_PARTY_NOTICES.md for the publication boundary.

Safety and honesty

SECTOR 305 is a fictional training simulation. It is not affiliated with the City of Miami, Miami-Dade County, any PSAP, RadioReference, APCO, NENA, or IAED. It is not a substitute for agency policy, supervised training, or production dispatch software. Completing an in-product track grants no real credential.

Read deeper

Contributing

The highest-value contribution is adversarial operational review. If a grade is unfair, a doctrine rule is incoherent, or the console teaches the wrong habit, open an issue with reproducible evidence and the relevant scenario clock.

See CONTRIBUTING.md before submitting changes.

License

Source code and original documentation are available under the MIT License. Music remains copyright © 2026 David Lombardo, all rights reserved; see THIRD_PARTY_NOTICES.md.

About

Doctrine-driven Miami dispatch simulation with deterministic grading, adaptive mastery, layered GIS, and an original 17-track score.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

SECTOR 305 title screen with adaptive watch directive

SECTOR 305

Miami on the map. Console on the glass.
A doctrine-driven fictional PSAP dispatch simulator where process—not spectacle—decides the watch.

CINode 20+TypeScriptLicense MIT

South Beach swagger at the door. A ruthless instrument on the glass.

What the hell is this?

SECTOR 305 is a deterministic emergency-communications training simulation set inside a fictional Miami-area public-safety answering point. You work the A-console: own the queue, verify imperfect locations, classify priority, build the response, protect airtime, obtain readbacks, maintain unit status, and leave a defensible record.

The simulation does not grade whether the story had a heroic ending. It grades whether your process held together under pressure.

This is not an arcade city-management game, a production CAD, or an official certification product. It is a deep fictional training instrument built to make operational discipline playable.

The glass

SECTOR 305 live A-console with incident queue, CFS detail, unit board, radio bank, GIS sector plate, live grader, and adaptive focus

The console puts the full watch in one coherent instrument:

  • Priority-and-age incident queue with imperfect information
  • CFS classification, location confidence, safety flags, and radio composition
  • Police, fire, EMS, air, hospital, and special-use presentation boards
  • Last-known unit tracks over a layered Miami GIS sector plate
  • Fictional built-in channel bank with a clean local-adapter seam
  • Live hard-fail and coaching feedback
  • Keyboard-complete checkride path
  • Original title music featuring David Lombardo on lead guitar
  • Seventeen-track original scenario score with automatic radio ducking
  • Dedicated score desk: on/off, previous/next, direct track selection, and bed level

Music that knows when to get out of the way

SECTOR 305 scenario score desk with seventeen original tracks, bed controls, and automatic radio ducking

The title performance crosses into a rotating watch score when the console opens. Seventeen original David Lombardo tracks are leveled for background use, looped per watch, and automatically ducked beneath dispatch and unit traffic. The score desk exposes the whole catalog without mixing music controls into the radio path.

The loop that remembers

SECTOR 305 carries performance forward without points, streak bait, or fake credentials. Every completed watch updates a local mastery record. Doctrine findings become operational domains—location, priority, assignment, status, radio, tempo, documentation, safety, multi-call awareness, and information constraints.

The next launch arrives with one explicit objective:

WATCH DIRECTIVE · LOCATION
Verify before you launch.

A clean follow-up watch does not erase the lesson. It converts the objective into retention: prove that the discipline still holds under pressure.

flowchart LR
A["Imperfect call enters the queue"] --> B["Operator acts on knowable information"]
B --> C["Deterministic runtime + live grader"]
C --> D["Clinical after-action review"]
D --> E["Persistent next-watch objective"]
E --> A
Loading

Pass clean—or learn exactly why you did not

Passing SECTOR 305 checkride debriefFailed SECTOR 305 checkride with doctrine findings
Qualified
Zero hard fails. The next watch asks you to hold the standard.
Corrective
Evidence-backed failures become the next watch's operating focus.

Why it hits differently

SystemWhat it means in the watch
Deterministic simulation kernelThe same seed and command stream reproduce the same evaluation.
Information-set fairnessHidden scenario truth cannot grade you until the relevant cue becomes knowable.
Doctrine packsPriority, statuses, assignment, radio, location, and rubric law are data-driven.
Sacred replay artifactA SessionRecord stores commands; the engine re-derives state and the debrief.
Adaptive masteryPersistent findings shape the next objective without turning performance into points.
Restrained presentationNeon belongs to the shell. The live CAD uses EFIS-like semantic color.
Authentic textureCity GIS atmosphere, imperfect last-known mapping, fictional channels, and an original Miami score ground the fiction.

Architecture

packs/* fictional doctrine and rubric data
↓
packages/core pure TypeScript runtime · no DOM · seeded clock
↓
PlayerCommand → SectorState → GradeEvent → Debrief
↓ ↓
packages/web SessionRecord replay + adaptive mastery
React console · GIS plate · audio director · Playwright acceptance

The core rule is simple: replaying a SessionRecord headlessly must reproduce the same hard-fail multiset as the UI session.

Run the watch

Requirements: Node.js 20 or newer.

git clone https://github.com/coldbricks/SECTOR-305.git
cd SECTOR-305
npm install
npm run dev

Open http://127.0.0.1:3050, let the title track breathe, then select BEGIN.

Useful commands:

npm test# core invariants and doctrine behavior
npm run test:e2e # full browser acceptance
npm run typecheck # strict TypeScript
npm run build # production build
npm run validate:packs # doctrine-pack validation
npm run sim -- fail # intentional five-finding checkride
npm run sim -- pass # clean canonical checkride

Verification posture

Current local milestone:

  • 107 core assertions across 17 test files
  • 10 end-to-end browser scenarios
  • Deterministic pass/fail simulation demos
  • Pack validation covering 14 natures and 24 rubric rules
  • Responsive acceptance at 1471px, 1280×720, and 760px
  • Native keyboard controls, focus visibility, reduced-motion support, and protected radio intelligibility

CI repeats typechecking, core tests, production build, pack validation, both simulations, and Playwright acceptance.

Data, audio, and attribution

  • Geographic atmosphere is curated from City of Miami GIS Open Data and remains explicitly non-operational.
  • SE305 zones, units, incidents, doctrine, and scenario truth are fictional training content.
  • The public channel bank is independently authored fictional training data. Premium third-party radio exports are absent from the public history.
  • Original music: “Dispatch in Miami” plus seventeen unique scenario-score masters by David Lombardo.
  • Audio is copyright © 2026 David Lombardo, all rights reserved, and is separate from the source-code license.

See THIRD_PARTY_NOTICES.md for the publication boundary.

Safety and honesty

SECTOR 305 is a fictional training simulation. It is not affiliated with the City of Miami, Miami-Dade County, any PSAP, RadioReference, APCO, NENA, or IAED. It is not a substitute for agency policy, supervised training, or production dispatch software. Completing an in-product track grants no real credential.

Read deeper

Contributing

The highest-value contribution is adversarial operational review. If a grade is unfair, a doctrine rule is incoherent, or the console teaches the wrong habit, open an issue with reproducible evidence and the relevant scenario clock.

See CONTRIBUTING.md before submitting changes.

License

Source code and original documentation are available under the MIT License. Music remains copyright © 2026 David Lombardo, all rights reserved; see THIRD_PARTY_NOTICES.md.

About

Doctrine-driven Miami dispatch simulation with deterministic grading, adaptive mastery, layered GIS, and an original 17-track score.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SECTOR 305 title screen with adaptive watch directive

SECTOR 305

Miami on the map. Console on the glass.
A doctrine-driven fictional PSAP dispatch simulator where process—not spectacle—decides the watch.

CINode 20+TypeScriptLicense MIT

South Beach swagger at the door. A ruthless instrument on the glass.

What the hell is this?

SECTOR 305 is a deterministic emergency-communications training simulation set inside a fictional Miami-area public-safety answering point. You work the A-console: own the queue, verify imperfect locations, classify priority, build the response, protect airtime, obtain readbacks, maintain unit status, and leave a defensible record.

The simulation does not grade whether the story had a heroic ending. It grades whether your process held together under pressure.

This is not an arcade city-management game, a production CAD, or an official certification product. It is a deep fictional training instrument built to make operational discipline playable.

The glass

SECTOR 305 live A-console with incident queue, CFS detail, unit board, radio bank, GIS sector plate, live grader, and adaptive focus

The console puts the full watch in one coherent instrument:

  • Priority-and-age incident queue with imperfect information
  • CFS classification, location confidence, safety flags, and radio composition
  • Police, fire, EMS, air, hospital, and special-use presentation boards
  • Last-known unit tracks over a layered Miami GIS sector plate
  • Fictional built-in channel bank with a clean local-adapter seam
  • Live hard-fail and coaching feedback
  • Keyboard-complete checkride path
  • Original title music featuring David Lombardo on lead guitar
  • Seventeen-track original scenario score with automatic radio ducking
  • Dedicated score desk: on/off, previous/next, direct track selection, and bed level

Music that knows when to get out of the way

SECTOR 305 scenario score desk with seventeen original tracks, bed controls, and automatic radio ducking

The title performance crosses into a rotating watch score when the console opens. Seventeen original David Lombardo tracks are leveled for background use, looped per watch, and automatically ducked beneath dispatch and unit traffic. The score desk exposes the whole catalog without mixing music controls into the radio path.

The loop that remembers

SECTOR 305 carries performance forward without points, streak bait, or fake credentials. Every completed watch updates a local mastery record. Doctrine findings become operational domains—location, priority, assignment, status, radio, tempo, documentation, safety, multi-call awareness, and information constraints.

The next launch arrives with one explicit objective:

WATCH DIRECTIVE · LOCATION
Verify before you launch.

A clean follow-up watch does not erase the lesson. It converts the objective into retention: prove that the discipline still holds under pressure.

flowchart LR
A["Imperfect call enters the queue"] --> B["Operator acts on knowable information"]
B --> C["Deterministic runtime + live grader"]
C --> D["Clinical after-action review"]
D --> E["Persistent next-watch objective"]
E --> A
Loading

Pass clean—or learn exactly why you did not

Passing SECTOR 305 checkride debriefFailed SECTOR 305 checkride with doctrine findings
Qualified
Zero hard fails. The next watch asks you to hold the standard.
Corrective
Evidence-backed failures become the next watch's operating focus.

Why it hits differently

SystemWhat it means in the watch
Deterministic simulation kernelThe same seed and command stream reproduce the same evaluation.
Information-set fairnessHidden scenario truth cannot grade you until the relevant cue becomes knowable.
Doctrine packsPriority, statuses, assignment, radio, location, and rubric law are data-driven.
Sacred replay artifactA SessionRecord stores commands; the engine re-derives state and the debrief.
Adaptive masteryPersistent findings shape the next objective without turning performance into points.
Restrained presentationNeon belongs to the shell. The live CAD uses EFIS-like semantic color.
Authentic textureCity GIS atmosphere, imperfect last-known mapping, fictional channels, and an original Miami score ground the fiction.

Architecture

packs/* fictional doctrine and rubric data
↓
packages/core pure TypeScript runtime · no DOM · seeded clock
↓
PlayerCommand → SectorState → GradeEvent → Debrief
↓ ↓
packages/web SessionRecord replay + adaptive mastery
React console · GIS plate · audio director · Playwright acceptance

The core rule is simple: replaying a SessionRecord headlessly must reproduce the same hard-fail multiset as the UI session.

Run the watch

Requirements: Node.js 20 or newer.

git clone https://github.com/coldbricks/SECTOR-305.git
cd SECTOR-305
npm install
npm run dev

Open http://127.0.0.1:3050, let the title track breathe, then select BEGIN.

Useful commands:

npm test# core invariants and doctrine behavior
npm run test:e2e # full browser acceptance
npm run typecheck # strict TypeScript
npm run build # production build
npm run validate:packs # doctrine-pack validation
npm run sim -- fail # intentional five-finding checkride
npm run sim -- pass # clean canonical checkride

Verification posture

Current local milestone:

  • 107 core assertions across 17 test files
  • 10 end-to-end browser scenarios
  • Deterministic pass/fail simulation demos
  • Pack validation covering 14 natures and 24 rubric rules
  • Responsive acceptance at 1471px, 1280×720, and 760px
  • Native keyboard controls, focus visibility, reduced-motion support, and protected radio intelligibility

CI repeats typechecking, core tests, production build, pack validation, both simulations, and Playwright acceptance.

Data, audio, and attribution

  • Geographic atmosphere is curated from City of Miami GIS Open Data and remains explicitly non-operational.
  • SE305 zones, units, incidents, doctrine, and scenario truth are fictional training content.
  • The public channel bank is independently authored fictional training data. Premium third-party radio exports are absent from the public history.
  • Original music: “Dispatch in Miami” plus seventeen unique scenario-score masters by David Lombardo.
  • Audio is copyright © 2026 David Lombardo, all rights reserved, and is separate from the source-code license.

See THIRD_PARTY_NOTICES.md for the publication boundary.

Safety and honesty

SECTOR 305 is a fictional training simulation. It is not affiliated with the City of Miami, Miami-Dade County, any PSAP, RadioReference, APCO, NENA, or IAED. It is not a substitute for agency policy, supervised training, or production dispatch software. Completing an in-product track grants no real credential.

Read deeper

Contributing

The highest-value contribution is adversarial operational review. If a grade is unfair, a doctrine rule is incoherent, or the console teaches the wrong habit, open an issue with reproducible evidence and the relevant scenario clock.

See CONTRIBUTING.md before submitting changes.

License

Source code and original documentation are available under the MIT License. Music remains copyright © 2026 David Lombardo, all rights reserved; see THIRD_PARTY_NOTICES.md.

About

Doctrine-driven Miami dispatch simulation with deterministic grading, adaptive mastery, layered GIS, and an original 17-track score.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SECTOR 305 title screen with adaptive watch directive

SECTOR 305

Miami on the map. Console on the glass.
A doctrine-driven fictional PSAP dispatch simulator where process—not spectacle—decides the watch.

CINode 20+TypeScriptLicense MIT

South Beach swagger at the door. A ruthless instrument on the glass.

What the hell is this?

SECTOR 305 is a deterministic emergency-communications training simulation set inside a fictional Miami-area public-safety answering point. You work the A-console: own the queue, verify imperfect locations, classify priority, build the response, protect airtime, obtain readbacks, maintain unit status, and leave a defensible record.

The simulation does not grade whether the story had a heroic ending. It grades whether your process held together under pressure.

This is not an arcade city-management game, a production CAD, or an official certification product. It is a deep fictional training instrument built to make operational discipline playable.

The glass

SECTOR 305 live A-console with incident queue, CFS detail, unit board, radio bank, GIS sector plate, live grader, and adaptive focus

The console puts the full watch in one coherent instrument:

  • Priority-and-age incident queue with imperfect information
  • CFS classification, location confidence, safety flags, and radio composition
  • Police, fire, EMS, air, hospital, and special-use presentation boards
  • Last-known unit tracks over a layered Miami GIS sector plate
  • Fictional built-in channel bank with a clean local-adapter seam
  • Live hard-fail and coaching feedback
  • Keyboard-complete checkride path
  • Original title music featuring David Lombardo on lead guitar
  • Seventeen-track original scenario score with automatic radio ducking
  • Dedicated score desk: on/off, previous/next, direct track selection, and bed level

Music that knows when to get out of the way

SECTOR 305 scenario score desk with seventeen original tracks, bed controls, and automatic radio ducking

The title performance crosses into a rotating watch score when the console opens. Seventeen original David Lombardo tracks are leveled for background use, looped per watch, and automatically ducked beneath dispatch and unit traffic. The score desk exposes the whole catalog without mixing music controls into the radio path.

The loop that remembers

SECTOR 305 carries performance forward without points, streak bait, or fake credentials. Every completed watch updates a local mastery record. Doctrine findings become operational domains—location, priority, assignment, status, radio, tempo, documentation, safety, multi-call awareness, and information constraints.

The next launch arrives with one explicit objective:

WATCH DIRECTIVE · LOCATION
Verify before you launch.

A clean follow-up watch does not erase the lesson. It converts the objective into retention: prove that the discipline still holds under pressure.

flowchart LR
A["Imperfect call enters the queue"] --> B["Operator acts on knowable information"]
B --> C["Deterministic runtime + live grader"]
C --> D["Clinical after-action review"]
D --> E["Persistent next-watch objective"]
E --> A
Loading

Pass clean—or learn exactly why you did not

Passing SECTOR 305 checkride debriefFailed SECTOR 305 checkride with doctrine findings
Qualified
Zero hard fails. The next watch asks you to hold the standard.
Corrective
Evidence-backed failures become the next watch's operating focus.

Why it hits differently

SystemWhat it means in the watch
Deterministic simulation kernelThe same seed and command stream reproduce the same evaluation.
Information-set fairnessHidden scenario truth cannot grade you until the relevant cue becomes knowable.
Doctrine packsPriority, statuses, assignment, radio, location, and rubric law are data-driven.
Sacred replay artifactA SessionRecord stores commands; the engine re-derives state and the debrief.
Adaptive masteryPersistent findings shape the next objective without turning performance into points.
Restrained presentationNeon belongs to the shell. The live CAD uses EFIS-like semantic color.
Authentic textureCity GIS atmosphere, imperfect last-known mapping, fictional channels, and an original Miami score ground the fiction.

Architecture

packs/* fictional doctrine and rubric data
↓
packages/core pure TypeScript runtime · no DOM · seeded clock
↓
PlayerCommand → SectorState → GradeEvent → Debrief
↓ ↓
packages/web SessionRecord replay + adaptive mastery
React console · GIS plate · audio director · Playwright acceptance

The core rule is simple: replaying a SessionRecord headlessly must reproduce the same hard-fail multiset as the UI session.

Run the watch

Requirements: Node.js 20 or newer.

git clone https://github.com/coldbricks/SECTOR-305.git
cd SECTOR-305
npm install
npm run dev

Open http://127.0.0.1:3050, let the title track breathe, then select BEGIN.

Useful commands:

npm test# core invariants and doctrine behavior
npm run test:e2e # full browser acceptance
npm run typecheck # strict TypeScript
npm run build # production build
npm run validate:packs # doctrine-pack validation
npm run sim -- fail # intentional five-finding checkride
npm run sim -- pass # clean canonical checkride

Verification posture

Current local milestone:

  • 107 core assertions across 17 test files
  • 10 end-to-end browser scenarios
  • Deterministic pass/fail simulation demos
  • Pack validation covering 14 natures and 24 rubric rules
  • Responsive acceptance at 1471px, 1280×720, and 760px
  • Native keyboard controls, focus visibility, reduced-motion support, and protected radio intelligibility

CI repeats typechecking, core tests, production build, pack validation, both simulations, and Playwright acceptance.

Data, audio, and attribution

  • Geographic atmosphere is curated from City of Miami GIS Open Data and remains explicitly non-operational.
  • SE305 zones, units, incidents, doctrine, and scenario truth are fictional training content.
  • The public channel bank is independently authored fictional training data. Premium third-party radio exports are absent from the public history.
  • Original music: “Dispatch in Miami” plus seventeen unique scenario-score masters by David Lombardo.
  • Audio is copyright © 2026 David Lombardo, all rights reserved, and is separate from the source-code license.

See THIRD_PARTY_NOTICES.md for the publication boundary.

Safety and honesty

SECTOR 305 is a fictional training simulation. It is not affiliated with the City of Miami, Miami-Dade County, any PSAP, RadioReference, APCO, NENA, or IAED. It is not a substitute for agency policy, supervised training, or production dispatch software. Completing an in-product track grants no real credential.

Read deeper

Contributing

The highest-value contribution is adversarial operational review. If a grade is unfair, a doctrine rule is incoherent, or the console teaches the wrong habit, open an issue with reproducible evidence and the relevant scenario clock.

See CONTRIBUTING.md before submitting changes.

License

Source code and original documentation are available under the MIT License. Music remains copyright © 2026 David Lombardo, all rights reserved; see THIRD_PARTY_NOTICES.md.

About

Doctrine-driven Miami dispatch simulation with deterministic grading, adaptive mastery, layered GIS, and an original 17-track score.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

SECTOR 305 title screen with adaptive watch directive

SECTOR 305

Miami on the map. Console on the glass.
A doctrine-driven fictional PSAP dispatch simulator where process—not spectacle—decides the watch.

CINode 20+TypeScriptLicense MIT

South Beach swagger at the door. A ruthless instrument on the glass.

What the hell is this?

SECTOR 305 is a deterministic emergency-communications training simulation set inside a fictional Miami-area public-safety answering point. You work the A-console: own the queue, verify imperfect locations, classify priority, build the response, protect airtime, obtain readbacks, maintain unit status, and leave a defensible record.

The simulation does not grade whether the story had a heroic ending. It grades whether your process held together under pressure.

This is not an arcade city-management game, a production CAD, or an official certification product. It is a deep fictional training instrument built to make operational discipline playable.

The glass

SECTOR 305 live A-console with incident queue, CFS detail, unit board, radio bank, GIS sector plate, live grader, and adaptive focus

The console puts the full watch in one coherent instrument:

  • Priority-and-age incident queue with imperfect information
  • CFS classification, location confidence, safety flags, and radio composition
  • Police, fire, EMS, air, hospital, and special-use presentation boards
  • Last-known unit tracks over a layered Miami GIS sector plate
  • Fictional built-in channel bank with a clean local-adapter seam
  • Live hard-fail and coaching feedback
  • Keyboard-complete checkride path
  • Original title music featuring David Lombardo on lead guitar
  • Seventeen-track original scenario score with automatic radio ducking
  • Dedicated score desk: on/off, previous/next, direct track selection, and bed level

Music that knows when to get out of the way

SECTOR 305 scenario score desk with seventeen original tracks, bed controls, and automatic radio ducking

The title performance crosses into a rotating watch score when the console opens. Seventeen original David Lombardo tracks are leveled for background use, looped per watch, and automatically ducked beneath dispatch and unit traffic. The score desk exposes the whole catalog without mixing music controls into the radio path.

The loop that remembers

SECTOR 305 carries performance forward without points, streak bait, or fake credentials. Every completed watch updates a local mastery record. Doctrine findings become operational domains—location, priority, assignment, status, radio, tempo, documentation, safety, multi-call awareness, and information constraints.

The next launch arrives with one explicit objective:

WATCH DIRECTIVE · LOCATION
Verify before you launch.

A clean follow-up watch does not erase the lesson. It converts the objective into retention: prove that the discipline still holds under pressure.

flowchart LR
A["Imperfect call enters the queue"] --> B["Operator acts on knowable information"]
B --> C["Deterministic runtime + live grader"]
C --> D["Clinical after-action review"]
D --> E["Persistent next-watch objective"]
E --> A
Loading

Pass clean—or learn exactly why you did not

Passing SECTOR 305 checkride debriefFailed SECTOR 305 checkride with doctrine findings
Qualified
Zero hard fails. The next watch asks you to hold the standard.
Corrective
Evidence-backed failures become the next watch's operating focus.

Why it hits differently

SystemWhat it means in the watch
Deterministic simulation kernelThe same seed and command stream reproduce the same evaluation.
Information-set fairnessHidden scenario truth cannot grade you until the relevant cue becomes knowable.
Doctrine packsPriority, statuses, assignment, radio, location, and rubric law are data-driven.
Sacred replay artifactA SessionRecord stores commands; the engine re-derives state and the debrief.
Adaptive masteryPersistent findings shape the next objective without turning performance into points.
Restrained presentationNeon belongs to the shell. The live CAD uses EFIS-like semantic color.
Authentic textureCity GIS atmosphere, imperfect last-known mapping, fictional channels, and an original Miami score ground the fiction.

Architecture

packs/* fictional doctrine and rubric data
↓
packages/core pure TypeScript runtime · no DOM · seeded clock
↓
PlayerCommand → SectorState → GradeEvent → Debrief
↓ ↓
packages/web SessionRecord replay + adaptive mastery
React console · GIS plate · audio director · Playwright acceptance

The core rule is simple: replaying a SessionRecord headlessly must reproduce the same hard-fail multiset as the UI session.

Run the watch

Requirements: Node.js 20 or newer.

git clone https://github.com/coldbricks/SECTOR-305.git
cd SECTOR-305
npm install
npm run dev

Open http://127.0.0.1:3050, let the title track breathe, then select BEGIN.

Useful commands:

npm test# core invariants and doctrine behavior
npm run test:e2e # full browser acceptance
npm run typecheck # strict TypeScript
npm run build # production build
npm run validate:packs # doctrine-pack validation
npm run sim -- fail # intentional five-finding checkride
npm run sim -- pass # clean canonical checkride

Verification posture

Current local milestone:

  • 107 core assertions across 17 test files
  • 10 end-to-end browser scenarios
  • Deterministic pass/fail simulation demos
  • Pack validation covering 14 natures and 24 rubric rules
  • Responsive acceptance at 1471px, 1280×720, and 760px
  • Native keyboard controls, focus visibility, reduced-motion support, and protected radio intelligibility

CI repeats typechecking, core tests, production build, pack validation, both simulations, and Playwright acceptance.

Data, audio, and attribution

  • Geographic atmosphere is curated from City of Miami GIS Open Data and remains explicitly non-operational.
  • SE305 zones, units, incidents, doctrine, and scenario truth are fictional training content.
  • The public channel bank is independently authored fictional training data. Premium third-party radio exports are absent from the public history.
  • Original music: “Dispatch in Miami” plus seventeen unique scenario-score masters by David Lombardo.
  • Audio is copyright © 2026 David Lombardo, all rights reserved, and is separate from the source-code license.

See THIRD_PARTY_NOTICES.md for the publication boundary.

Safety and honesty

SECTOR 305 is a fictional training simulation. It is not affiliated with the City of Miami, Miami-Dade County, any PSAP, RadioReference, APCO, NENA, or IAED. It is not a substitute for agency policy, supervised training, or production dispatch software. Completing an in-product track grants no real credential.

Read deeper

Contributing

The highest-value contribution is adversarial operational review. If a grade is unfair, a doctrine rule is incoherent, or the console teaches the wrong habit, open an issue with reproducible evidence and the relevant scenario clock.

See CONTRIBUTING.md before submitting changes.

License

Source code and original documentation are available under the MIT License. Music remains copyright © 2026 David Lombardo, all rights reserved; see THIRD_PARTY_NOTICES.md.

About

Doctrine-driven Miami dispatch simulation with deterministic grading, adaptive mastery, layered GIS, and an original 17-track score.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages