Orientation
What CCF6 is
CCF6 is a minimal, inspectable scientific instrument for testing computational consequences of Neurocognitive Linguistics. It is not a product, a natural-language system, or a claim of biological equivalence. The implementation sequence through GitHub issue #12 is complete; there are currently no open roadmap tickets.
Experiment definition
JSON declares seeds, Populations, sparse topology, dynamics, learning, controls, and analysis.Python runtime
Runs ordinary Columns, local Eligibility, frozen observers, matched controls, and replication.Artifact + workbench
Writes durable evidence to disk; Laravel validates and renders it without recomputation.artifacts/ and renders what the runtime already wrote.
The big picture
How the whole system fits together
CCF6 has two different architectures that should not be confused: the software architecture that runs and displays experiments, and the scientific Network architecture inside each experimental arm. The diagrams below move from the outside inward, then back out from one seed to the final verdict.
1. Software architecture: declaration → runtime → evidence → UI
Nothing is authored in the workbench and no scientific number is calculated there. A JSON definition enters the Python runtime, the runtime constructs and runs the experiment, and a durable artifact becomes the only input to Laravel.
In plain English: the JSON file is the recipe, Python is the laboratory instrument, the artifact directory is the lab notebook, and Laravel is the glass display case. Changing the display cannot change the experiment's result.
2. Scientific topology: one connected Network of 55 ordinary Columns
The milestone Network contains seven Populations. Population names say where evidence comes from or the broad wiring role; they do not assign learned category content. Every Population uses the same Column mechanics.
3. Inside one Column: signal propagation during one synchronous tick
Each tick is computed from an immutable copy of the previous tick. This prevents Population iteration order from changing the result. The three compartments are functional simplifications, not claims that one simulated object equals a literal anatomical minicolumn.
4. How Columns are linked
A projection is a sparse list of endpoint pairs, not a dense matrix. For each target Column, the declared fan_in selects source Columns without replacement. The same endpoints support two independent directions.
5. What one acquisition Presentation does
A Presentation is the learning boundary. It resets once, contains several ordered Samples, and applies at most one outcome after the final Sample settles.
Temporary during the Presentation
Input, Integration, Output, and directional Eligibility persist between Samples. They reset before the next independent Presentation.
Durable across Presentations
Directional weights, thresholds, activity averages, entrenchment, contributor Presentation IDs, Recruitment evidence, and fixed topology survive reset.
Success-gated branch
With signal 1.0, local eligible weights can strengthen and successful participation contributes to entrenchment. With signal 0.0, co-activity causes no evidence-dependent weight change.
Independent homeostasis
Activity averages and thresholds adapt once per acquisition Presentation whether the pairing succeeds or not. This prevents the Success Signal from becoming a hidden threshold label.
6. Where the experimental data goes—and where it may not go
Each category has one prototype and 16 generated instances divided before the run. Development decisions use acquisition and basin-estimation evidence. Final held-out evidence is isolated until frozen evaluation.
Three epochs select acquisition instances. Correct and mismatched Presentations are balanced. Durable adaptation is enabled only here.
Adaptation is frozen. These full paired Presentations fit centroids, pooled scales, reliable masks, distributions, and margins.
Never used to fit basins, choose masks, tune parameters, detect webs, or define margins. It tests the already-frozen apparatus.
7. Seeds: where reproducible variation enters
A seed is not a signal sent to a brain area or Population. It is an integer used by software randomizers before or around execution so the same declared run can be reproduced exactly.
8. What a complete experiment does
Experiment 011 is an orchestrator. It runs the full single-seed protocol independently for every declared seed, extracts one metrics row per seed, and only then performs inference.
9. Observer ladder: measurements never become hidden Network state
10. Where the implementation lives
domain.py- Deterministic synthetic categories, instances, pseudowords, controls, pairings, and scientific constraint validation.
functional_network.py- The deep Network module: construction, synchronous ticks, settling, local learning, Recruitment evidence, stimulation, Lesion, and snapshots.
functional_presentation.py- Stateless sensory mappings and the visual-first ordered Sample protocol.
functional_acquisition.py- Focused success-gated learning experiment and learning artifact evidence.
target_basins.py- Frozen basin fitting, primary standardized distance, cosine diagnostics, margins, and correct-basin evaluation.
completion_evaluation.py- Order-preserving trajectory sampling and comparison against lexical controls.
functional_webs.py- Offline reliability, causal completion, reciprocal connectivity controls, FDR correction, membership, and overlap.
cardinals.py- Matched control selection and observer-only Cardinal Candidate/Cardinal Node gates.
controlled_basins.py- Single-seed orchestration across trained, untrained, and shuffled arms through frozen causal observations.
replication.py- Parallel seed execution, seed-level metrics, deterministic paired bootstrap, criteria, failures, and verdict.
experiment.py- Experiment-kind dispatch, artifact identity, writing, checksums, and final run directory.
artifacts.py- Independent validation of every normative file without rerunning the experiment.
serve.py- Synchronous HTTP adapter exposing
/healthand/run. WorkbenchController.php- Artifact validation and selection of the read-only Laravel evidence view.
Accepted baseline Column deep dive
The original simplified unit, without hand-waving
The accepted milestone remains the reproducible baseline: its Column is deliberately smaller than a concept, word, or Functional Web and reduces local circuitry to three activity values. CCF6 now also carries the explicit laminar implementation described in the next section. Keeping both lets later abstractions be compared against evidence instead of silently replacing the baseline.
1. Exactly what one Column owns
| State | Meaning | Reset between Presentations? |
|---|---|---|
Input u ∈ [0,1] | Leaky integration of sensory drive and ascending broadcasts. | Yes → exactly 0 |
Integration v ∈ [0,1] | Leaky combination of prior Input, its own recurrent state, descending context, and local inhibition. | Yes → exactly 0 |
Output o ∈ [0,1] | Leaky graded response around the Column's threshold; the only compartment broadcast externally. | Yes → exactly 0 |
threshold θ | Local response threshold, initialized from a declared range and adjusted by homeostasis during acquisition. | No |
activity_average | Moving average used only by the local homeostatic threshold rule. | No |
entrenchment | Accumulated confirmed participation used with contributor count to classify Recruitment. | No |
contributing_presentations | Distinct successful Presentation IDs that contributed to entrenchment. | No |
Connections own
Endpoint indices, one ascending weight, one descending weight, one ascending Eligibility trace, one descending Eligibility trace, fan-in, normalization norm, and initialization provenance.
The Column does not own
A category, pseudoword, semantic feature, Functional Web membership, Cardinal Candidate status, Cardinal Node status, symbolic rule, target answer, or construction-specific program.
2. Every route into and out of one focal Column
3. The exact tick algorithm
A tick is one synchronous numerical update. “Synchronous” is the essential protection: no Column can see another Column's newly calculated value until the next tick.
driveᵤ = sensory + Σ(w↑ × broadcast_source)u(t+1) = leaky(u(t), clamp01(driveᵤ), τ_input)Sensory activity and lower-level broadcasts target Input. Leaky updating means Input approaches its target over time instead of jumping there.
driveᵥ = u(t) + gain×v(t) + Σ(w↓×broadcast_target) − inhibitionv(t+1) = leaky(v(t), clamp01(driveᵥ), τ_integration)Integration sees prior Input, its own prior recurrent state, top-down context, and nearby competitors. It does not read u(t+1).
response = sigmoid((v(t) − θ) / temperature)o(t+1) = leaky(o(t), response, τ_output)Output is graded, not Boolean. A lower temperature makes the threshold transition sharper; a higher threshold requires more Integration.
broadcast = o if o ≥ transmission_cutoff else 0The cutoff controls what leaves the Column. It does not erase or quantize the stored Output value, which remains observable and graded.
e↑(t+1) = clamp01(decay×e↑(t) + o_source(t)×v_target(t))The lower/source endpoint's raw Output is paired with the higher/target endpoint's Integration.
e↓(t+1) = clamp01(decay×e↓(t) + o_target(t)×v_source(t))The reverse direction has its own local trace. Eligibility uses raw Output, not transmission-cutoff broadcast.
Numerical values in the current replicated milestone
| Mechanism | Declared value | Practical effect |
|---|---|---|
| Tick interval | dt = 0.1 | Used in every leaky update as α = 1 − exp(−dt/τ). |
| Input leak | τ_input = 0.3, α ≈ 0.283 | Input moves about 28.3% of the remaining distance toward its drive each tick. |
| Integration leak | τ_integration = 0.4, α ≈ 0.221 | Integration moves about 22.1% toward its combined drive each tick. |
| Output leak | τ_output = 0.5, α ≈ 0.181 | Output is the slowest compartment, moving about 18.1% toward its sigmoid response. |
| Internal recurrence | recurrent_gain = 0.6 | Prior Integration contributes 60% of its value to the next Integration target before clamping. |
| Threshold response | temperature = 0.1 | Controls the steepness of the graded sigmoid around each local threshold. |
| Initial thresholds | uniform [0.35, 0.55] | Columns begin heterogeneous; homeostasis clamps later thresholds to [0.2, 0.8]. |
| Transmission | cutoff = 0.05 | Output below 0.05 contributes zero to ascending and descending drives. |
| Settling | ε = 0.0001, 3 stable ticks, maximum 300 | Every Output must change by less than ε for three consecutive ticks; otherwise settling explicitly fails. |
| Eligibility | decay multiplier = 0.1 | Only 10% of the previous trace remains before current co-activity is added; the result is clamped to [0,1]. |
| Weight learning | learning_rate = 0.05 | At signal 1.0 and Eligibility 1.0, an edge closes 5% of its remaining distance toward 1 before normalization; weaker traces produce smaller changes. |
| Initial projection weights | uniform [0.1, 0.3], incoming norm 0.4 | Each direction is sampled independently, then incoming values are normalized per destination and projection. |
| Inhibition | strength 0.1; radius 1 sensory, radius 2 association | The fixed total strength is distributed across each Column's available indexed neighbors. |
| Homeostasis | average rate 0.2, threshold rate 0.01, target 0.4 | Highly active Columns slowly raise their thresholds; underactive Columns slowly lower them. |
| Recruitment | entrenchment ≥ 2.0 and ≥ 3 distinct Presentations | Both accumulated confirmed participation and recurrence across Presentation identities are required. |
In plain English: every Column first remembers the old photograph of the whole Network. All Columns then work out their next state from that same photograph. Only when every calculation is finished does the Network replace the photograph.
4. Why propagation takes several ticks
The equations create causal delay. A new sensory contribution first changes Input; a later tick lets that changed Input affect Integration; another later tick lets changed Integration affect Output; only then can that Output drive connected Columns.
5. Bidirectional flow is two independent mechanisms
6. Inhibitory competition inside one Population
Competition is fixed, local, subtractive, and synchronous. It is not a winner-take-all instruction and it is not learned during this milestone.
7. Learning happens after settling, not inside the tick's activity equations
8. State lifecycle across ticks, Samples, and Presentations
| Event | Activity u/v/o | Eligibility | Weights | Thresholds/averages | Entrenchment/contributors |
|---|---|---|---|---|---|
| Next tick | Leaky synchronous update | Decay + local co-activity | Unchanged | Unchanged | Unchanged |
| Next Sample, same Presentation | Preserved; new sensory drive | Preserved | Unchanged | Unchanged | Unchanged |
| Successful settled outcome | Preserved for measurement | Read as local evidence | May update if signal > 0 | Update once in acquisition | May update if signal > 0 |
| Next Presentation reset | Exactly zero | Exactly zero | Preserved | Preserved | Preserved |
| Frozen evaluation | Runs and settles normally | May evolve temporarily | Frozen | Frozen | Frozen |
| Lesion context | Selected Output clamped 0; Input and Integration remain observable | Temporary only | Frozen during observer test | Frozen | Frozen |
| Stimulation context | Selected Output clamped to declared graded value | Temporary only | Frozen during observer test | Frozen | Frozen |
9. What this mechanism was expected to do—and what it actually did
Selective reverberation
Repeated correct co-activation was expected to strengthen a selective set of reciprocal paths. Partial visual or pseudoword evidence would then enter through different routes, settle toward the same category basin, and reactivate missing ordered activity.
Diffuse saturation
Activity became near-global, most Eligibility saturated, and all 55 Columns became Recruited in trained arms. Weight changes were not selective enough to preserve ordered conjunctions or outperform matched controls.
The Column equations still conformed
The negative result did not come from skipping the declared mechanics. Reset, synchronous ticks, reciprocal independence, local learning, freezing, controls, observers, and failure accounting all behaved as specified.
The learning hypothesis failed
The implemented local mechanism was insufficient for the target behavior under the declared apparatus. The next scientific step is to alter a preregistered local temporal mechanism—not to encode categories or expected answers inside Columns.
Detailed experimental architecture · runtime 0.3.0
Explicit laminar Columns and cortical pathways
Experiment 012 adds a second implementation alongside the accepted 55-Column baseline. It is still a normalized population-rate simulation—not an individual-neuron or conductance model—but cortical layers, pyramidal populations, apical compartments, interneuron classes, hierarchy, and pathway families are now addressable structures whose activity and flux can be recorded separately.
The simulated cortical hierarchy
topology.json contains every endpoint and initialized strength.One composite Column
One synchronous tick in the laminar model
fluxₑ(t) = broadcast(source,t) × effective_strengthₑThe artifact records every edge's signed flux at every tick. Inhibitory flux is negative; the visualizer does not infer it from activity.
net = clamp01(external + Σexc + scale×Σmod − Σinh)target = max(0, (net − threshold)/(1 − threshold))Discrete circuitry determines which terms reach a population. Arithmetic only updates the named population once those physical routes are known.
initial_strength = declared_strength × U(0.95, 1.05)The seed creates small reproducible pathway heterogeneity. The same seed reconstructs identical topology, initialized strengths, activity, controls, and artifacts.
reset: every population activity = 0; every Eligibility = 0No spontaneous floor is imported from the illustrative HTML. Durable pathway factors and structural contacts survive activity reset.
Hebbian strengthening is decomposed into Lamb's three physical mechanisms
Presynaptic release facilitation
release_facilitation increases the effective contribution of a confirmed co-active source, bounded by a declared maximum. It represents easier or greater neurotransmitter release.
Postsynaptic receptiveness
postsynaptic_receptiveness independently increases how strongly the target responds to the same route, also bounded by a declared maximum.
Structural growth
Confirmed structural credit can add discrete terminal_boutons, axonal_branches, and dendritic_spines. Effective structural strength is limited by the least-developed side of the contact.
Effective pathway strength
Declared base strength × release facilitation × postsynaptic receptiveness × structural factor. Every term, bound, Eligibility value, and contributor remains inspectable.
Experiment 012 process inventory
The definition runs every process independently from zero rest. Eighteen processes include a route-disabled causal control; the artifact retains full 126-population activity trajectories and 418-pathway signed-flux trajectories rather than generating decorative animation.
Pathway families
All circuits, thalamocortical Input, intracolumnar Flow, Ascend, Topdown, Lateral, PV, SOM, and VIP.
Integrated processes
Sensory integration, predictive-coding loop, winner-takes-most, perisomatic gain, and behavioral-state ensemble.
State processes
Attention, arousal, novelty, reward, and sustained pyramidal activity with a finite input pulse.
Learning process
Hebbian strengthening confirms local co-activity and records changes in release, receptiveness, boutons, branches, spines, and effective strength. STDP remains false.
docker compose up -d --build --force-recreate runtime
curl http://localhost:8933/health
python -m ccf6 experiments/012-detailed-cortical-circuit.json artifacts
Artifact contract: ncl-cortical-circuit-v1. Principal evidence is in topology.json, topology.npz, activity.json, and activity.npz.
Implementation record
What has been built
Issues #2–#12 form one progressive implementation. Each later experiment reuses the same declared domain and Network mechanics while adding an observer or stronger experimental control.
Synthetic lexical grounding
Four overlapping visual categories, reusable distributed auditory features, ordered three-segment pseudowords, balanced mismatches, deterministic generation, and isolated acquisition/basin/held-out splits.
Ordinary zero-rest Columns
Synchronous Input, Integration, and Output dynamics; exact zero rest; graded thresholds; sparse reciprocal endpoints; independent directional weights and Eligibility; explicit settling failures.
Coordinated Presentations
Visual activity first, then ordered auditory Samples. Activity persists within a Presentation and resets between Presentations. Reversed, permuted, repeated, and competing controls remain distinct.
Success-gated local learning
Eligibility accumulates from endpoint co-activity. Durable directional weights change only after a diffuse positive Success Signal, with local incoming normalization.
Recruitment and homeostasis
Entrenchment requires distinct successful Presentations. Threshold averages adapt locally and independently of success. Durable adaptation freezes for evaluation.
Matched Target Basins
Trained, identical untrained, and shuffled-pairing arms share initial conditions. Basin centroids, reliable masks, scales, distributions, and margins are fit without final held-out leakage.
Completion and reactivation
Full, visual-only, pseudoword-only, partial visual, and atypical cues are scored against frozen basins. Ordered trajectories are compared with every required sequence control.
Causal Functional Web observer
Membership requires reliability, completion perturbation, and reciprocal connectivity above matched controls with false-discovery-rate correction. Runtime activity never stores membership.
Cardinal causal classification
Observer-only Candidate and Cardinal Node gates, median-Output stimulation, Output Lesions preserving incoming observability, redundancy measures, and matched controls.
Replicated milestone
Twenty paired seeds, three arms per seed, 10,000 deterministic paired bootstrap resamples, seed-level effects, explicit failures, non-inferiority analysis, and one criterion-by-criterion verdict.
Complete artifact contract
The accepted ncl-functional-web-v1 contract is the default. Every required file is checksum-protected and independently validatable; superseded prototype code and compatibility paths are retired.
Explicit laminar cortical circuit
A separate ncl-cortical-circuit-v1 apparatus expands ten composite Columns into named pyramidal, tuft, PV, SOM, and VIP populations linked by 418 inspectable pathways. Twenty focused simulations retain activity, flux, controls, and decomposed Hebbian strengthening.
Scientific status
The implementation is complete; the hypothesis failed
| Criterion | Accepted result | Interpretation |
|---|---|---|
| Completion improvement | Failed | Median paired effect 0.0; 95% interval [0.0, 0.0]. |
| Cross-route reactivation | Failed | Median paired effect 0.0; no positive interval. |
| Correct pairing localization | Failed | Trained behavior did not reliably exceed shuffled pairings. |
| Functional Web overlap | Failed | No causally qualified Functional Web was detected across the milestone. |
| Cardinal interventions | Not executable | No causal Functional Web meant no valid Cardinal Candidate could be promoted. |
| Settling | 6 failures | Failures occurred across three seeds and were counted, never discarded. |
| Held-out separation non-inferiority | Passed | The 95% lower bound remained above the declared −5% margin. |
The mechanism-level diagnosis is diffuse near-global activation: Eligibility saturates broadly, Recruitment becomes indiscriminate, and the current local rule does not preserve ordered conjunctions. The artifacts preserve that failure as the baseline for the next mechanism.
Local operation
Quick start with Docker Compose
The default ports are read from .env: workbench 8002, runtime API 8933, and Redis 6380. Internally, Laravel reaches the runtime at runtime:8931.
Prepare the application
From the repository root, create the environment, install PHP dependencies, initialize SQLite, and generate the Laravel key.
cp .env.example .env
composer install
touch database/database.sqlite
docker compose run --rm --no-deps php php artisan key:generate
docker compose run --rm --no-deps php php artisan migrateBuild and start the services
docker compose up -d --build
docker compose psThe stack includes Caddy, PHP-FPM, the Python runtime, queue and schedule workers, and Redis.
Verify both interfaces
curl http://localhost:8933/health
open http://localhost:8002On Linux, replace open with xdg-open, or enter the URL manually.
Run a fast experiment first
curl -X POST http://localhost:8933/run \
-H 'Content-Type: application/json' \
--data-binary @experiments/002-synthetic-lexical-grounding.jsonReload the workbench. A new run appears automatically because the runtime and Laravel share artifacts/.
Execution paths
Three ways to run an experiment
1. Runtime HTTP API
Best when the Docker stack is already running. POST /run is synchronous: the response arrives only after the artifact is complete.
curl -X POST http://localhost:8933/run \
-H 'Content-Type: application/json' \
--data-binary @experiments/008-completion-reactivation.jsonThe JSON response includes run, artifact, and summary. Use GET /health to see the runtime version and supported experiment kinds.
2. Python CLI on the host
Best for development and logs. The command prints the run directory and human-scale summary.
PYTHONPATH=ccf6-runtime/src python3 -m ccf6 \
experiments/008-completion-reactivation.json artifactsThe host Python environment needs the runtime dependencies from ccf6-runtime/pyproject.toml, principally NumPy.
3. CLI inside the runtime container
Useful when the host has no suitable Python environment.
docker compose exec runtime python -m ccf6 \
experiments/008-completion-reactivation.json artifactsValidate without rerunning
The complete replicated artifact can be audited independently. Replace the directory with the run printed by the CLI or shown in the workbench.
PYTHONPATH=ccf6-runtime/src python3 -m ccf6 --validate \
artifacts/011-<timestamp>-<digest>Experiment catalogue
Choose the smallest experiment that answers your question
| Definition | Kind | Use it to inspect |
|---|---|---|
002-synthetic-lexical-grounding.json | synthetic_lexical_grounding | Generated categories, splits, pseudowords, pairings, and constraint checks. |
003-zero-rest-network.json | zero_rest_network | Column equations, topology, reciprocal weights, activity, and settling. |
004-coordinated-presentation.json | coordinated_presentation | Visual-first Sample order, persistence, reset, and sequence controls. |
005-success-gated-learning.json | success_gated_learning | Eligibility and successful versus unsuccessful directional weight changes. |
006-recruitment-homeostasis.json | recruitment_homeostasis | Distinct-Presentation Recruitment, thresholds, entrenchment, and freezing. |
007-matched-target-basins.json | matched_target_basins | Matched arms, frozen scales, masks, centroids, margins, and held-out scoring. |
008-completion-reactivation.json | completion_reactivation | Partial cues, Entry Routes, basin movement, and ordered phonological trajectories. |
009-functional-web-detection.json | functional_web_detection | Reliability, causal perturbation, connectivity controls, FDR, and overlap. |
010-cardinal-classification.json | cardinal_classification | Candidate gates, stimulation, Lesion, redundancy, matching, and failures. |
011-replicated-milestone.json | replicated_milestone | The canonical 20-seed experiment, bootstrap inference, and final verdict. |
012-detailed-cortical-circuit.json | cortical_process_suite | Ten laminar Columns, 126 named populations, 418 pathways, 20 process trajectories, causal controls, and decomposed Hebbian strengthening. |
User interface
How to use the Laravel workbench
Runs index · /
Lists every artifact directory newest first, including experiment number, kind, status, duration, seed count, and digest. Select the experiment name to open its evidence.
Run view · /runs/{run}
Chooses the correct evidence view from the artifact manifest. The replicated view shows the complete contract, criterion verdicts, effect intervals, every seed, and failures.
Project documents · /docs/{page}
Renders root-level Markdown files in docs/. Examples: architecture, specification, and NCL summary.
Integrity behavior
For milestone artifacts, the workbench verifies the exact file inventory and SHA-256 checksums. Missing, malformed, unsupported, or modified artifacts are reported instead of interpreted through the current architecture.
What each focused view emphasizes
| Experiment range | Workbench evidence |
|---|---|
| 002 | Domain constraints, category instances, pseudowords, and balanced pairings. |
| 003 | Actual connectivity, Input/Integration/Output activity, and settling status. |
| 004 | Presentation order, trajectories, durations, continuity, and failures. |
| 005–006 | Success Signals, Eligibility, weights, Recruitment, threshold history, and frozen evaluation. |
| 007–010 | Matched arms, Target Basins, completion, reactivation, Functional Web and cardinal evidence. |
| 011 | Complete artifact inventory, checksums, seed audit, bootstrap effects, criteria, failures, and verdict. |
| 012 | Interactive tick slider over actual neural-population activity and signed pathway flux, route filtering, process controls, all explicit edges, and separate release/receptiveness/structural learning evidence. |
Durable evidence
The complete artifact contract
A canonical replicated run is one directory under artifacts/. JSON is for definitions and observer evidence, JSON Lines for Presentation records, and compressed NumPy archives for lossless numerical arrays.
| File | Purpose |
|---|---|
definition.json | Exact experiment definition supplied to the runtime. |
manifest.json | Contract, software version, identity digest, timing, status, seed/arm inventory, ordered files, and checksums. |
dataset.json | Generated domain, immutable split membership, constraints, and pairings for every seed. |
topology.npz | Population labels, thresholds, directed endpoints, directional initial weights, and inhibition topology. |
presentations.jsonl | One auditable Presentation per line with seed, arm, condition, Samples, success, durations, and settling status. |
learning.npz | Eligibility, pre/post directional weights, thresholds, entrenchment, contributors, and Recruitment. |
activity.npz | Initial/settled activity and required ordered phonological trajectories. |
basins.json | Frozen centroids, pooled scales, reliable masks, margins, and distance distributions. |
webs.json | Raw web detector scores, matched controls, corrected values, membership, and overlap. |
cardinals.json | Candidate gates, matching, stimulation, Lesion, redundancy, classifications, and failures. |
metrics.json | Every ordered seed row and paired effect value; Presentations remain nested observations. |
aggregate.json | Bootstrap intervals, direction counts, failure counts, acceptance criteria, and verdict. |
summary.json | Compact human-scale replication status and verdict used by the workbench. |
Artifact identity
The digest changes when the definition, software version, generated dataset, or topology changes. Checksums detect any later file modification.
Database boundary
Numerical results never belong in SQLite. Artifacts are the source of truth; Laravel only reads them. The database is reserved for a catalogue if needed.
Safe experimentation
How to create a new declared run
Copy the nearest experiment
Start from the smallest definition with the behavior you need. Give it a new number, name, question, and—only if runtime dispatch changes—a supported kind.
Declare every result-affecting value
Seeds, topology, fan-in, initialization, dynamics, settling, learning, controls, observer thresholds, replication workers, bootstrap count, and non-inferiority margin belong in the definition. Unknown or malformed declarations should fail rather than silently default.
Protect the evidence boundary
Use acquisition and basin-estimation data to develop mechanisms and freeze observer definitions. Never select parameters by looking at final held-out performance. Preserve trained, identical untrained, and shuffled-pairing arms.
Run focused, then replicated
First verify mechanics and artifacts with one seed. Once the mechanism and analysis are fixed, execute at least 20 paired seeds and aggregate seed-level effects—not Presentations.
Keep negative results
Do not discard settling failures, seeds without Candidates, or hypotheses that fail. Record them in artifacts and let the workbench state the result plainly.
Development checks
Tests and verification
Python runtime
PYTHONPATH=ccf6-runtime/src python3 -m pytest ccf6-runtime/tests -q
python3 -m compileall -q ccf6-runtime/src ccf6-runtime/testsLaravel workbench
php artisan test --compact
vendor/bin/pint --dirty --format agentPrefer tests at the public scientific seams: declared experiment → artifact, normative Network behavior, frozen observer output, and artifact → rendered workbench. A test should catch a broken premise, not merely pin incidental implementation.
Operations
Troubleshooting
The workbench shows no runs
/www/artifacts in both containers. On the host, the default is the repository's artifacts/. Reload http://localhost:8002 after the run completes.A run is “unsupported or malformed”
The runtime reports an unknown current experiment kind
/health reports version 0.1.0 or lists only the retired colour_selectivity_baseline, the runtime container predates the NCL Functional Web implementation. Rebuild and recreate it with docker compose up -d --build --force-recreate runtime, then verify curl http://localhost:8933/health reports version 0.3.0 and the current experiment kinds.The runtime health endpoint does not respond
docker compose ps and docker compose logs runtime. Confirm FORWARD_RUNTIME_PORT=8933 is free. Rebuild with docker compose up -d --build runtime after changing the image or package metadata.The UI does not respond
docker compose logs caddy php. Confirm FORWARD_PHP_PORT=8002 and that Composer dependencies exist in vendor/. The public URL is controlled by APP_URL.The runtime returns HTTP 500
Artifacts are owned by root or cannot be written
WWWUSER and WWWGROUP in .env to your host user and group IDs, then rebuild the services. The runtime container deliberately runs as those IDs.The complete run is slow
replication.workers value is declared in the experiment. Change it only as part of a new definition; the changed definition must produce a new identity. Use focused experiments while iterating.Frontend changes are not visible
npm install and npm run build, or keep npm run dev active.Forward path
Recommended next steps
Decide the next local temporal mechanism
The first milestone localized a failure: broad co-activity saturates Eligibility and loses ordered conjunctions. The next proposal should introduce an NCL-compatible temporal distinction—such as sequence-local Eligibility, a declared WAIT-like recurrent configuration, or another local mechanism—without installing symbolic order or semantic labels.
Predeclare development and evaluation
Write a new issue/specification before changing mechanics. Choose parameters using mechanics and development evidence only, freeze the decision, then rerun the same held-out cues, matched arms, web controls, cardinal interventions, and 20-seed inference.
Treat the failed artifact as the baseline
Compare a new mechanism against the accepted run on saturation, Recruitment selectivity, completion, ordered reactivation, pairing localization, web overlap, cardinal causality, separation, and failures. Do not overwrite or reinterpret the baseline.
Add run submission only if needed
The current workbench intentionally reads artifacts and does not launch experiments. A future UI could submit an existing declared definition to the synchronous runtime endpoint while keeping experiment authoring and numerical computation out of Laravel.
Domain and experimental language
Extensive glossary
These definitions combine the canonical NCL vocabulary in CONTEXT.md with the measurement, control, inference, and artifact terms used by the implemented experiments. Capitalized domain terms retain their project-specific meanings.
NCL network organization
The entities and observer classifications used to describe the connected cognitive system.
- Network
- The complete connected cognitive system in which local functions arise from connectivity and activity; not a symbolic processor.
- Column
- The smallest addressable processing population. It stores no symbol or concept; its function comes from connectivity and activation history.
- Population
- A group of ordinary Columns receiving a related class of evidence and participating in one or more distributed functions.
- Modality
- The sensory or motor channel through which activity enters or leaves a Population, such as visual or auditory; not a cognitive function.
- Functional Web
- A distributed, overlapping coalition demonstrated by reliable co-activation, effective connectivity, completion from independent Entry Routes, and causal evidence. It is an observer result, not a runtime container.
- Subweb
- A functionally distinguishable part of a Functional Web that may also participate in other webs rather than being owned by one.
- Entry Route
- A functionally independent sensory, linguistic, conceptual, or motor path capable of contributing to a Functional Web's Ignition.
- Available Column
- A Column whose plasticity has not yet been committed to a recurring function.
- Recruited Column
- A Column measurably entrenched by repeated successful participation across distinct Presentations.
- Cardinal Candidate
- A Recruited Column or redundant population that passes independent-route, stability, stimulation, and matched-control gates. Recruitment alone is insufficient.
- Cardinal Node
- A Cardinal Candidate that demonstrates stable access, partial-cue Ignition, supporting-Subweb reactivation, Lesion sensitivity, redundancy behavior, and cross-seed evidence.
- Reciprocal topology
- Connected Population endpoints support both ascending and descending routes while each direction keeps independent weights and Eligibility.
- Fixed latent topology
- Abundant sparse connections are created before learning. Learning may alter their strengths but cannot add, remove, or redirect them in milestone one.
- Input, Integration, Output
- The three private functional compartments of every Column: incoming drive, recurrent/contextual competition, and graded broadcast response.
Detailed laminar circuitry
Terms used by the separate population-rate cortical apparatus introduced in experiment 012.
- Detailed laminar apparatus
- The experimental
ncl-cortical-circuit-v1implementation that exposes named layers, neural populations, and directed pathways while preserving the simplified Functional Web runtime as a baseline. - Composite cortical Column
- One A–E, M1–M3, or H1–H2 circuit containing the same twelve named population-rate elements. It is more detailed than the accepted baseline Column but still not a literal anatomical column.
- Neural population
- One separately updated rate-coded element inside a composite cortical Column, such as
A.L4PyrorM1.SOM23; it summarizes a cell class rather than simulating individual neurons. - Layer 1 (L1)
- The superficial layer represented here by L2/3 and L5 apical-tuft targets that receive descending contextual pathways.
- Layers 2/3 (L2/3)
- Supragranular integration and corticocortical populations involved in vertical flow, horizontal interaction, ascending output, recurrence, and top-down context.
- Layer 4 (L4)
- The principal thalamocortical input layer, represented by an excitatory pyramidal population and a fast PV population.
- Layer 5 (L5)
- A deep pyramidal-output layer with its own apical target, PV somatic inhibition, SOM dendritic inhibition, recurrent return, and subcortical output.
- Layer 6 (L6)
- The deep corticothalamic-feedback population that also receives descending contextual modulation.
- Pyramidal population
- A rate-coded excitatory population named for its cortical layer. It carries vertical, recurrent, lateral, ascending, descending, or motor-related output according to explicit pathways.
- Apical tuft
- An explicit distal dendritic target for top-down context. SOM inhibits it, while tuft-to-pyramidal modulation conveys surviving context toward somatic activity.
- PV population
- A fast parvalbumin-like inhibitory population targeting pyramidal somatic activity and controlling feedforward or feedback gain and timing.
- SOM population
- A slower somatostatin-like inhibitory population recruited by pyramidal or lateral activity and targeting apical dendritic integration, PV, or VIP routes.
- VIP population
- A vasoactive-intestinal-peptide-like inhibitory population driven by context and behavioral state. By inhibiting SOM, it disinhibits selected apical pathways.
- Thalamus
- The external sensory relay that drives lower L4 and PV4 populations, supplies weaker L2/3 and L6 context, and receives L6 corticothalamic return.
- Excitatory pathway
- A directed edge whose non-negative signed flux is added to the target population's drive.
- Inhibitory pathway
- A directed edge whose flux is subtracted from the target's drive. Inhibitory strengths remain fixed in this iteration.
- Modulatory pathway
- A directed contextual or state edge whose flux is scaled separately before being added, distinguishing modulation from principal excitation.
- Release facilitation
- The presynaptic Hebbian factor representing facilitated neurotransmitter release after confirmed recurring co-activity.
- Postsynaptic receptiveness
- The independent Hebbian factor representing increased receptiveness of the target membrane to an existing route.
- Terminal bouton
- A discrete structural contact count on a pathway, increased only after enough confirmed local structural credit.
- Axonal branch
- A discrete structural count representing expansion of the source side of a pathway.
- Dendritic spine
- A discrete structural count representing expansion of the receptive target side of a pathway.
Activity, learning, and causal behavior
Terms for what the Network does during a Presentation and what may change durably afterward.
- Activation
- The graded current response of a Column or Population to excitation, inhibition, recurrence, threshold, and context; not a truth value.
- Broadcast
- Output activity sent to connected Columns when it meets the declared transmission cutoff. The cutoff does not alter stored Output.
- Competition
- Bounded local inhibition among alternatives that sharpens participation without imposing a global symbolic winner.
- Persistence
- Temporary maintenance of activity through recurrent connectivity; not permanent memory.
- Eligibility
- A temporary local trace on one directional connection, bounded to
[0,1]. Each tick combines the decayed previous trace with presynaptic Output × postsynaptic Integration. Eligibility persists between Samples in the same Presentation, resets between independent Presentations, and remains separate for ascending and descending directions. It marks which co-active connections may be strengthened if a later Success Signal confirms the outcome; Eligibility alone is neither learning, success, nor a durable weight change. - Success Signal
- A diffuse modulatory value indicating an observable successful outcome without identifying a category, Column, Population, or connection.
- Recruitment
- Experience-dependent commitment through eligible connections confirmed across distinct successful Presentations; never one tick or one Sample.
- Entrenchment
- Accumulated evidence of repeated successful use that increases a pathway's stability and accessibility.
- Homeostasis
- Local adaptation of each Column's activity average and threshold toward a declared target, independently of the Success Signal.
- Ignition
- Coordinated activation of a Functional Web from a sufficiently informative partial Entry Route.
- Pattern Completion
- Reactivation of absent parts of a learned Functional Web from partial evidence; not record retrieval.
- Stimulation
- A causal intervention that clamps selected Output to a declared amplitude, here derived from median full-Presentation activity, with sensory input absent.
- Lesion
- A causal intervention that clamps selected Output to zero while preserving observation of activity arriving at Input and Integration.
- Redundancy
- Preservation or recovery of function through alternative Columns or routes when one Candidate or Candidate group is lesioned.
Experimental domain and protocol
Terms that identify what is presented, when adaptation is allowed, and which evidence may be used.
- World
- The external arrangement presented to the Network during an experiment; not an internal model.
- Object
- A presentation target defined by externally observable parts or properties; not a stored concept.
- Presentation
- One ordered exposure of an Object or cue to the Network. Activity and Eligibility reset between independent Presentations.
- Sample
- One sensory observation within a Presentation. Activity and Eligibility persist from one Sample to the next.
- Sensory adapter
- A stateless mapping from distributed physical features to sensory Population activity. It carries no category identity, history, or outcome.
- Acquisition
- The phase in which balanced correct and mismatched visual–pseudoword Presentations may adapt weights, thresholds, entrenchment, and Recruitment.
- Correct pairing
- A category's declared visual evidence paired with its pseudoword; after successful settling it receives Success Signal
1.0. - Mismatch
- A balanced visual–pseudoword control Presentation that receives Success Signal
0.0, showing that co-activity alone is insufficient. - Ordered pseudoword
- A three-segment lexical form assembled from shared distributed auditory features and distinguishable by temporal conjunction rather than a unique feature.
- Sequence control
- A reversed, permuted, repeated-segment, or competing pseudoword trajectory used to test whether order—not only the feature bag—was learned.
- Basin-estimation split
- Four disjoint instances per category used to fit frozen basin centroids, scales, reliable masks, distributions, and margins.
- Final held-out split
- Four disjoint instances per category reserved for final evaluation and forbidden from influencing generation decisions, fitting, or parameter selection.
- Partial cue
- An incomplete Entry Route, such as a subset of visual properties, used to test movement toward the correct Target Basin and Pattern Completion.
- Atypical held-out cue
- A final held-out instance selected by the declared prototype-distance rule to test graded recognition away from the prototype.
- Settling
- Recurrent execution until the maximum Output change remains below the declared epsilon for the declared consecutive stable ticks.
- Settling failure
- Reaching
max_tickswithout stability. Recognition cannot be inferred, and the failure must be counted rather than discarded. - Durable adaptive state
- Weights, thresholds, activity averages, entrenchment, contributor identities, and Recruitment evidence that survive activity reset. Fixed topology is durable but not adaptive.
- Frozen evaluation
- Basin estimation and final testing with every durable adaptive process disabled. Observation may not become additional training.
Plain-language experiment vocabulary
Short definitions for recurring words that appear throughout run definitions, evidence tables, and result discussions.
- Basin
- A region of Network activity toward which recurrent settling tends to converge. In these experiments, a category's measured and frozen region is its Target Basin.
- Trace
- A value or sequence that preserves how something changed over time. An Eligibility trace is temporary local connection state; an activity trace records Column activity across ticks. A trace is evidence, not a symbolic memory record.
- Pseudoword
- An invented, pronounceable experimental form with no pre-existing meaning. Here it is an ordered sequence of three reusable segments represented by distributed auditory features.
- Centroids
- The category-level mean activity vectors calculated from basin-estimation instances. Each centroid summarizes the center of one fitted Target Basin without storing any one Presentation as the target.
- Scales
- Per-Column variability values used to put activity differences on comparable units. The frozen pooled scales divide centroid differences in standardized Euclidean distance and cannot fall below
minimum_scale. - Reliable masks
- Frozen Boolean selections identifying which Columns are stable enough across basin-estimation instances to contribute to a category's primary basin distance.
- Distributions
- Recorded collections of observed or control values rather than one summary number—for example within-category distances, between-category distances, or random-coalition scores.
- Margins
- Frozen separation allowances derived from basin-estimation distributions. A correct basin distance must beat every competing distance by more than the category's margin.
- Path
- A concrete sequence of connected directional routes through which activity can propagate. A path is not itself an Entry Route: an Entry Route is a functionally independent source of access and may use several paths.
- Arm
- One matched experimental condition run from controlled initial conditions. The milestone uses trained, untrained, and shuffled-pairing arms for every seed.
Target Basins, controls, and observer evidence
Terms used to turn frozen Network activity into comparable recognition and causal measurements.
- Target Basin
- The stable distributed activity region approached during a full learned Presentation and estimated from several instances, never one stored vector.
- Centroid
- The mean settled activity vector of one category's basin-estimation instances.
- Reliable-Column mask
- The frozen subset of Columns whose basin-estimation variability remains within the declared stability limit.
- Pooled scale
- A per-Column variability estimate fitted from basin-estimation evidence and bounded below by
minimum_scale. - Standardized Euclidean distance
- The primary basin metric: root-mean-square centroid difference after division by frozen pooled scales over reliable Columns.
- Cosine distance
- A secondary directional-similarity diagnostic retained for inspection but never substituted for the primary standardized metric.
- Basin margin
- A frozen threshold derived from within-category basin-estimation distances. Correct distance plus margin must beat every competitor.
- Trained arm
- The matched arm that receives declared Success Signals and performs durable acquisition before evaluation is frozen.
- Untrained arm
- An otherwise matched Network that performs no durable learning, establishing what initial wiring alone can do.
- Shuffled-pairing arm
- A trained matched arm that changes only category–pseudoword pairings, testing whether effects localize to the correct arbitrary signs.
- Matched control
- A comparison selected to share all relevant initial conditions or nuisance properties except the intervention or hypothesis-bearing factor.
- Pairing localization
- The degree to which trained completion and reactivation exceed the shuffled-pairing arm rather than reflecting generic adaptation.
- Reliability evidence
- Category-conditioned activation consistency compared with shuffled-label control distributions.
- Causal completion contribution
- The change in completion caused by perturbing a Column, compared with matched random-Column perturbations.
- Reciprocal effective connectivity
- Measured two-direction connectivity within a proposed coalition, compared with degree-matched random coalitions.
- False-discovery-rate correction
- Benjamini–Hochberg correction across tested Columns that limits the expected proportion of false selections among discoveries.
- Observer
- Offline analysis that classifies basins, Functional Webs, or cardinals from recorded evidence without changing Network activity or learning.
Replication, inference, and results
Terms used by experiment 011 and the workbench to state what the evidence supports.
- Seed
- An integer that deterministically controls generated data, topology, initial weights, and random controls for one paired replicate.
- Replicate unit
- The independent unit used for inference. In the milestone it is the seed, never an individual Presentation.
- Nested observation
- A Presentation measured within a seed. It contributes to that seed's value but is not counted as an independent replicate.
- Paired effect
- A within-seed difference between matched arms or conditions, preserving shared data, topology, parameters, and initial state.
- Deterministic bootstrap
- Seeded resampling of paired seed effects—10,000 times in the milestone—to estimate the sampling interval of the median.
- 95% bootstrap interval
- The 2.5th-to-97.5th percentile range of bootstrapped seed-level median effects. It is not computed over Presentations.
- Expected-direction proportion
- The fraction of seed effects above the declared target: zero for improvement effects or the negative margin for non-inferiority.
- Failure count
- The explicit number of unusable effects, settling failures, failed seeds, or non-executable required interventions associated with a result.
- Non-inferiority margin
- The largest acceptable degradation. Held-out category separation must have a lower interval bound above the declared
−5%relative margin. - Criterion
- One preregistered pass/fail condition in the milestone acceptance set, reported independently with its evidence.
- Milestone verdict
- The conjunction of all required criteria. One failed criterion makes the overall verdict fail even when another criterion passes.
- Negative result
- A completed, auditable experiment whose evidence does not support the tested hypothesis. It is not equivalent to a runtime error.
- Conformance
- Evidence that the apparatus implements the accepted specification. Conformance does not imply a positive scientific verdict.
Artifacts and workbench
Terms for reproducibility, identity, integrity, and display.
- Experiment definition
- The exact JSON declaration of the question, mechanism, parameters, controls, seeds, and analysis used by a run.
- Run
- One execution of an experiment definition, identified by experiment number, timestamp, and content-derived digest.
- Artifact
- An on-disk, rerun-free record of definitions, numerical arrays, Presentations, observer evidence, failures, and results.
- Artifact contract
- A required file inventory and its field semantics. The accepted milestone uses
ncl-functional-web-v1; the detailed laminar process suite uses the separatencl-cortical-circuit-v1contract. - Manifest
- The artifact index recording contract, software version, identity, timing, status, stimuli, parameters, ordered files, and checksums.
- Digest
- A compact content-derived identity that changes with result-affecting definitions, software, generated datasets, or topology.
- Checksum
- A SHA-256 integrity value for one artifact file, used to detect modification or corruption after the run.
- Workbench
- The read-only Laravel UI that validates and renders runtime-produced artifacts without rerunning experiments or recomputing scientific values.
Sources of truth