PyCForge 1.3.67 / separate SDK 0.5.0 / optional NumPy 0.1.0
Bundled math remains 0.3.0, byte-identical to the 1.3.66 baseline
Work date: 2026-10-29 (America/Chicago)
Unpublished development handoff. Only CC publishes releases.

SCOPE AND USER WORKFLOW

Install PyCForge 1.3.67, register pycforge-numpy-0.1.0.pcfplugin through
Tools > Register Conversion Imports, confirm Ready, and select Runtime.
Use *import numpy as np. The package is optional, not a new bundled startup
import. Existing single-bar startup and recoverable import loading are retained.
Runtime preview is a maturity label: supported programs generate native C and
compile through PCFC11 or GCC. Generated executables need no Python or NumPy.

The initial NumPy package exports array, zeros, ones, full, copy, add, subtract
and multiply. The reusable profile supports contiguous one-dimensional finite
float64 arrays. array and full require dtype="float64"; zeros/ones default to
that string. Shape is a nonnegative integer or one-item list/tuple containing
one. Boolean shape/index values are refused. Flat numeric list/tuple elements
or an existing supported array can be copied into independent storage.

Supported array behavior includes integer/negative indexing, item assignment,
len, iteration/reversed, shape/size/ndim, copy()/tolist(), unary +/- and
add/subtract/multiply. Binary operations take equal-length arrays or one array
and a numeric scalar. Assignment and argument passing share identity; creation,
copying and ordinary arithmetic do not. In-place +=/-=/*= preserve aliases and
validate a temporary result before committing any mutation. Failed mutations
leave the original array intact. Empty arrays are valid; truth testing requires
exactly one element and rejects ambiguity before branch side effects.

Unsupported forms remain explicit: multidimensional arrays, views, strides,
slices, external buffers, general/length-one-array broadcasting, dtype objects
or inference, more dtypes, reductions, comparisons, array formatting, and other
NumPy functions. Use tolist() for display. Nonfinite input and arithmetic
overflow are refused; NumPy warnings/seterr behavior is not approximated.
Underflow may round to finite subnormal values or zero. This is bounded NumPy
coverage, not a general NumPy implementation or cross-platform bit guarantee.

SIMPLE SDK CONTRACT

Authors choose an engine-owned operation and supply only operation_id, export,
operation and summary. The eight choices publish read-only signatures, meaning
and allocation behavior. Dtype, rank, layout, ownership and cleanup are engine
rules, not configurable author controls. SDK.templates() and the templates CLI
show concise starter cards. The shared backend publishes Choose, Explain,
Check, Verify and Build workflow data for Python, console and a future GUI.
No separate SDK GUI or independent human usability trial is claimed.

Public ExtensionAuthoring handles scalar and array declarations; existing
ScalarAuthoring remains supported. The NumPy and independently named vectors
packages use exactly the same array contracts. No namespace/export-name special
case determines array lowering. Browsing never executes examples. The SDK has
no dependencies and imports neither PyCForge, NumPy nor Qt in its own process;
it selects public services in a separate engine interpreter.

Array profile/declaration are crucible.array1d-f64/0.1 and
crucible.array-declaration/0.1. Extension API/catalogue advance to 0.4; engine
API/discovery remain 0.1. pycforge.array-package/0.1 is an inert three-member
archive requiring complete offline Help. Scalar formats, SDK project/report
formats and legacy fingerprints are preserved. SDK 0.5 reads catalogues
0.1 through 0.4. Actual SDK 0.4 refuses 0.4 and preserves its old offline cache;
actual engine 1.3.66 refuses array packages. Installed 1.3.60/1.3.61 compatibility
gates continue to exercise browsing, migration and old-package behavior.

Changed declarations, Help, engine, compiler or SDK invalidate verification.
Failed/stale builds preserve the existing package. Registration remains explicit
and is distinct from SDK native verification. Help, autocomplete and diagnostics
use the accepted parameter contracts. Invalid literal dtype receives PYC4710;
call-shape errors retain PYC4706 with source locations and no partial C.

OWNERSHIP AND NATIVE VERIFICATION

Array header and data allocations belong to the originating Runtime context.
Returned arrays remain live within that context. Explicit idle-boundary GC
traces arrays, including references inside containers, closures and cycles;
C callers supply live roots. Destruction frees all remaining allocations.
Byte-size multiplication, target size range, arena budget and element work are
checked. Partial allocation and arithmetic temporaries are released on failure.
Ordinary type/value/shape/bounds/finite-result failures are catchable. Allocation
failure and budget exhaustion retain the existing fatal resource policy.

Host: Linux x86_64, Python 3.12.14, GCC 13.3.0, PCFC11 0.2.25, NumPy 2.5.4,
PySide6/Qt 6.12.0 offscreen. PCFC11 was built from the user's source ZIP:
PCFC11-0.2.25-source.zip
SHA256 bdaffad8adf9e1f90953ea9c35d1c8e2937218c5b8e122bd8590368a84d7091e

* Full engine suite: 3,622 nodes selected exactly once in four disjoint groups.
  Initial: 3,570 passed, 13 failed, 39 skipped; 4,907 passed subtests. Exact-node
  follow-ups resolve all 13 failures. Reconciled: 3,583 passed, 39 skipped,
  zero unresolved failures. This is grouped coverage plus follow-ups, not a
  claim of one initially clean run. Selection, progress, JUnit and reconciliation
  are preserved under evidence/numpy_1_3_67.
* 95 new array/editor/native nodes are included in that total. NumPy's 21-case
  template has 13 reference/native programs and eight expected conversion
  rejections. GCC qualification uses C11, UBSan and the established strict
  warning profile (with existing unused-function, unused-variable and
  misleading-indentation exclusions). This is not an unsuppressed warning claim.
* PCFC11 compiles and executes all 13 array programs at both O0 and O1: 26
  comparisons. Installed registered NumPy and vectors additionally pass the
  actual BuildService at both levels, using the IDE's native build pathway.
* A seeded matrix compares 480 arithmetic results over 48 array pairs, lengths
  0/1/2/7/17/33, signed zero and small/large finite magnitudes. Both GCC with
  UBSan and PCFC11 O1 match separately executed NumPy output exactly.
* Ownership tests pass ASan/UBSan, allocation counters, overflow/budget failure,
  atomic mutation and 500 rooted collection cycles with stable arena usage.
  All tracked allocations reach zero at destruction. LeakSanitizer could not
  run on this host; ASAN_OPTIONS=detect_leaks=0 was used. No LSan pass is claimed.
* Installed engine: 116 focused tests passed with installed-module origin
  assertions. The final converter/runtime bytes are identical to that candidate;
  subsequent changes only clarify authoring Help/reference and README metadata.
  Final-wheel payload identity and three final Help/registration/native checks
  also pass. No SDK is installed in the engine environment.
* SDK: 68 source nodes resolved (67 initial passes plus one corrected-fixture
  follow-up), and the complete installed SDK suite passes 68/68. Installed SDK
  payload bytes match the final wheel. Final-wheel qualification freshly creates,
  scans, verifies and deterministically builds NumPy and vectors (21/21 cases
  each), registers both, checks production PCFC11 builds, stale-output
  preservation and actual older-engine/SDK refusal.
* Editor completion inserts the named shape argument correctly and Undo restores
  the source. Selected-package Help is searchable and was visually inspected.
  The exact NumPy offline Help example passes a native comparison.
* Current manual verification passes: 31 Help pages, five categories, 81 Python
  examples (49 Runtime and 32 Typed native comparisons), five API examples,
  four C callers, three module examples and three README examples.
* README rendering passes with exactly the approved four image links, matching
  version, unchanged banner widths and no navigation links. Its added NumPy
  paragraph describes supported behavior; the two short Ting paragraphs were
  joined without changing their words to retain the concise line limit.

ATTEMPTS, LIMITS AND FOLLOW-UPS

PCFC11 enabled previously skipped coverage and exposed missing floor/pow/fmod
prototypes in the existing Windows support header. Adding those declarations
passes both Windows-target assembly checks. This is assembly qualification, not
execution on Windows. There was no Windows/macOS native run or Clang run here.

The exact historical converter inventories now include array_lowering.py and
array_ops.h; current version assertions now expect 1.3.67. No frozen historical
hashes or proof contracts were relaxed. Two timing-sensitive editor/process
checks pass when repeated separately without extending their timeouts. One
follow-up launched from stdin could not spawn its worker; the normal module-based
pytest invocation passes. Initial failure logs are retained.

Early array checks caught a scalar-only completion Help accessor and an incorrect
test expectation about ordinary assignment's RHS-before-index evaluation order.
Both are resolved. Initial SDK tests contained an incorrect cache accessor/member
name, and one overlapped a catalogue change; corrected stable tests pass. A
compatible engine-addition fixture was adjusted to attach its method explicitly
to ScalarAuthoring now that the module also contains ExtensionAuthoring.

The final reference regeneration synchronizes the NumPy template's descriptions
with the fixed array contract, and distinguishes scalar numeric slots from
integer array lengths/indices. Fresh final SDK evidence binds the final engine
catalogue. Existing packages and development inputs are preserved.

The 39 inherited skips are 20 unavailable Clang checks, 18 unavailable sealed
historical predecessors and one conditional test for a host without Qt. No new
array test is hidden by a skip. Evidence is finite fixture qualification, not
proof of every input, a stable general resource/plugin ABI or a security audit.
Views/strides, external ownership, larger array coverage and a real human-author
trial remain future gates before a general extension interface is called stable.

PRESERVATION AND HANDOFF

All 3,897 engine and 130 SDK baseline files remain present. New framework 0.5
sits alongside retained earlier directives. Source archives retain development
specifications, tests, fixtures, tools, examples and historical text evidence.
The SDK's previous report is retained separately. Math 0.3.0 remains byte-identical.

This report is the in-source record before final archive assembly. The external
handoff report adds strict distribution checks, installed payload identity,
source rebuild comparison and exact final artifact sizes/SHA256. Build backend:
setuptools 82.0.1; deterministic wheel epoch: SOURCE_DATE_EPOCH=1793232000.
Only CC publishes. No release upload or other publication was performed.
