NORTHSET
Proof-of-Pass Receipt
Receipt ID M-150
ISSUE / WORKAdd error message when factory builder callback does not return the factory builder · PR #42
CONTRIBUTOR SELF-RUN — NOT MAINTAINER VERIFICATION
RUN→
01 / TECHNICAL RESULT
Technical result
declared commands passed
Recorded on the named code in the named execution environment. The evidence annex carries the exact scope.
- Upstream
- OPENmutable external state
- Attempts
- 3 totalcurrent
M-150· #3 - Cost record
- PARTIALunpriced
02 / RECORDED WORK SEQUENCE
Northset Proofline
Every task-bound attempt is shown in recorded order. Anatomy geometry follows each non-null elapsed duration’s share; labels retain exact recorded time.
- ATTEMPT 1
M-128FAILED ORACLEverification - ATTEMPT 2
M-138FAILED INFRA TERMINALinfrastructure - ATTEMPT 3
M-150READY
ATTEMPT 3 / EXECUTION ANATOMY
03 / ECONOMIC NARRATIVE
Economic identity
Observed sponsorship, authorization, scope, transfer, and outcome. No estimates or inferred value.
01 / MANDATE
Sponsored and authorized
The recorded mandate names both its sponsor and initiative, with authorization tied to a named approver and approval time.
02 / WORK
Demand became scoped work
An external issue invitation became a stable task and a recorded code-and-test scope, without treating scope as a measure of value.
03 / EXTERNAL OUTCOME
Transfer and upstream state
The recorded maintainer transfer and its contingency are separate from upstream state, which remains a mutable external observation.
04 / COST COMPLETENESS
Known, unknown, and unpriced
Known: maintainer payment was none. A known zero external transfer is not a zero total cost.
Missing or unpriced components
- model inference
- actual host compute
- human review
- shared tooling
No complete total is recorded; see the missing or unpriced component record above.
Evidence annexEconomic · technical · provenance · limitations
01Economic evidence
Lineage, usage, caps, outcome, and cost provenance
Economic evidence
Lineage, usage, caps, outcome, and cost provenanceAttempt lineage
M-128attempt 1 · FAILED ORACLE · verificationM-138attempt 2 · FAILED INFRA TERMINAL · infrastructureM-150attempt 3 · READY
Recorded usage
- requested reviewer model
- gpt-5.6-sol
- actual reviewer model
- not captured
- requested author model
- gpt-5.6-sol
- actual author model
- not captured
- networked setup phase
- 1m18s
- install-only duration
- not captured
- declared commands
- 9.3s
- unclassified executor time
- 16.5s
- CPU time
- not captured
- peak RSS
- not captured
Configured resource envelope
- CPU cap
- 2
- memory cap
- 4096 MB
- PID cap
- 512
- command wall cap
- 1800s
- output cap / stream
- 2000000 bytes
Configured limits are an envelope, not observed consumption.
Cost lines
- maintainer paymentobserved quantity unpriced · 0 external transfer · amount unavailable
Cost status: partial. Values without source-backed quantities and rates remain null.
Outcome facts
- technical checks passed
- true
- PR opened
- true
- CI
- pending
- merged
- false
- accepted as submitted
- not established
- external cycle time
- not captured
- released
- not observed
- deployed
- not observed
- business result
- not observed
02Technical evidence
Code, environment, exact commands, patch, and outputs
Technical evidence
Code, environment, exact commands, patch, and outputsProject
Work
Add error message when factory builder callback does not return the factory builder · PR #42
Verification execution
runtime: northset-oss executor v1
human operator: aeziz
Code
- base
6693af47e28bb6d01035ada6b61341b6ad630b95- recorded patch commit
a480182e3b703ac7d75ade1769ed02fd980d8d66
declared metadata; not execution-bound- patch diff SHA-256
sha256:340ed24340c71df129e6091626cf825de3b537648209fbba115f2620446ce960
bound to executed patch bytes
Environment
- image reference
- node@sha256:40ad9f3064e67d6860b4bc3fe1880b2953934fd6320ada990e45fe0efa6badd7
- repository digest
node@sha256:40ad9f3064e67d6860b4bc3fe1880b2953934fd6320ada990e45fe0efa6badd7- immutable image ID
sha256:6ed6ff875e9714bb845b850b08f3ad231ccbb5848812647bcf11acdd4bd1d2f8- platform
- linux/arm64
- network
- phaseA:bridge,phaseB:none
Declared checks
Execution summary
1/1 declared command returned exit 0 in the recorded environment
npm test -- --configLoader runner src/__tests__/factory.test.tsexit 0 · 9.3s
run wall (derived from recorded timestamps) 1m44s
PASS — 1/1 declared command
Every command listed returned exit 0 in the declared environment. Only the listed commands are in scope. Unlisted test, lint, typecheck, build, coverage, compiler, full-suite, and CI gates are not implied or recorded.
Public scope interpretation
The receipt proves the declared automated checks only; maintainer review and merge remain independent human decisions.
Committed patch.diff
diff --git a/src/__tests__/factory.test.ts b/src/__tests__/factory.test.ts
index 1c5b26dd27c11a1f6b57499daaa9708d9c603afe..49dcf97eb41607fe6381b06417107d9d522dd4eb 100644
--- a/src/__tests__/factory.test.ts
+++ b/src/__tests__/factory.test.ts
@@ -1,6 +1,30 @@
import { beforeEach, describe, expect, it } from 'vitest';
import { createFactory } from '../factory.js';
+describe('createFactory', () => {
+ it('throws when the factory-builder callback returns undefined', () => {
+ const invalidFactoryBuilderCallback = () => undefined;
+
+ expect(() =>
+ // @ts-expect-error - exercise invalid runtime callback behavior
+ createFactory(invalidFactoryBuilderCallback)
+ ).toThrowError(
+ 'The factory-builder callback must return the supplied factory builder.'
+ );
+ });
+
+ it('throws when the factory-builder callback returns a different value', () => {
+ const invalidFactoryBuilderCallback = () => ({});
+
+ expect(() =>
+ // @ts-expect-error - exercise invalid runtime callback behavior
+ createFactory(invalidFactoryBuilderCallback)
+ ).toThrowError(
+ 'The factory-builder callback must return the supplied factory builder.'
+ );
+ });
+});
+
describe('build', () => {
type User = {
id: number;
diff --git a/src/factory.ts b/src/factory.ts
index b7d9c15122cc62878d8c3d9b52ac561d5a2eff10..f8add5b2a39520fb72293f5a72f7a907a10a1e96 100644
--- a/src/factory.ts
+++ b/src/factory.ts
@@ -296,7 +296,12 @@ export function createFactory<
if (typeof attributesOrBuilder === 'function') {
const factoryBuilder = createFactoryBuilder(definition);
- attributesOrBuilder(factoryBuilder);
+ const returnedFactoryBuilder = attributesOrBuilder(factoryBuilder);
+ if (returnedFactoryBuilder !== factoryBuilder) {
+ throw new Error(
+ 'The factory-builder callback must return the supplied factory builder.'
+ );
+ }
} else {
definition.attributeDefaults = attributesOrBuilder;
}
Redacted stdout
=== cmd 1: npm test -- --configLoader runner src/__tests__/factory.test.ts ===
> typical-data@1.0.0 test
> vitest run --configLoader runner src/__tests__/factory.test.ts
[1m[46m RUN [49m[22m [36mv3.2.4 [39m[90m/workspace[39m
[32m✓[39m src/__tests__/factory.test.ts [2m([22m[2m42 tests[22m[2m)[22m[32m 11[2mms[22m[39m
[2m Test Files [22m [1m[32m1 passed[39m[22m[90m (1)[39m
[2m Tests [22m [1m[32m42 passed[39m[22m[90m (42)[39m
[2m Start at [22m 21:22:15
[2m Duration [22m 2.68s[2m (transform 205ms, setup 0ms, collect 222ms, tests 11ms, environment 0ms, prepare 825ms)[22m
Redacted stderr
=== cmd 1: npm test -- --configLoader runner src/__tests__/factory.test.ts ===
03Provenance & limitations
Bundle identity, attestation, verification, and claims boundary
Provenance & limitations
Bundle identity, attestation, verification, and claims boundaryRecord details
- payment
- none · not merge-contingent
- redactions
- none recorded
- Bundle contents digest
sha256:f841aa982fd364859c8d65d880916c864bcaba95f6c980ba6a9ce2cc16a3c6cc- Signed asset SHA-256
sha256:97471690589ab12a497fd5a89ba431613f48eaf8dd20dfdb083104dc4f68c44e- Signed provenance recorded
- verified 2026-07-16T22:49:25.048Z
NOT INCLUDED
- Does not prove code quality
- Does not prove security
- Contributor self-run record of Northset's own contribution; not the maintainer's verification.
- The receipt proves the declared automated checks only; maintainer review and merge remain independent human decisions.
Signed bundle
Verify this receipt
gh attestation verify run-record-M-150-f841aa982fd3.tar.gz --repo northset-oss/verification-pilot --signer-workflow northset-oss/verification-pilot/.github/workflows/attest-bundle.ymlAttestation confirms that Northset's signing workflow produced this exact bundle. The signer does not witness the recorded run, and verification does not turn it into maintainer verification.
QR → receipt page