Repository navigation
Add composite building-block examples - #1
Open
anthonyshafer wants to merge 3 commits into
Open
anthonyshafer wants to merge 3 commits into
anthonyshafer wants to merge 3 commits into
Conversation
…te, render job, audit log write, fallback match, media probe)
Set metadata.template.status to mock-only-probe for job-run, approval-gate, and render-job, and note in each notes file that the graph was validated by the repository validator and the Subfork server-side validate endpoint but has not been run against a live job service.
Replace the not-executed text in the LLM Call, Audit Log Write, and Fallback Match notes with the actual run record (date, endpoint, result, what was and was not exercised). Add the server-side validation result and the node catalog size to all seven notes, and drop the duplicated trailing line from the three job notes. Mark Media Probe Normalize as media-worker-probe to match the repository convention. Label the Job Run, Approval Gate, and Render Job cards as showing the main steps only and regenerate the embedded and sidecar thumbnails.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds seven small, generic graphs that are meant to be called from a parent graph as composites. Each is built only from released nodes, has a typed
composite_interfaceand matchinggraph_inputs, and holds no credentials. Where a service needs auth, the parent builds the request headers from its own secrets and passes them in through aheadersinput.graphs/pipes/http/llm-callgraphs/pipes/http/audit-log-writeid(externally visible write)graphs/pipes/jobs/job-rungraphs/pipes/jobs/approval-gategraphs/pipes/jobs/render-jobgraphs/pipes/transforms/fallback-matchgraphs/media/video/media-probe-normalizeEach graph ships with
<name>.subfork.json,<name>.notes.md, and<name>.thumbnail.jpg(also embedded in the envelope as a 480x320 JPEG). Notes cover the Notes Checklist (purpose and data flow, inputs and outputs, authentication, security guidance, side effects, limits, and validation status) except a Subfork version, which is not published. Each note records the check date (2026-11-05) and the node catalog size (75 node types) instead.Index updates:
graphs/README.md,graphs/pipes/README.md,graphs/media/README.md,graphs/media/video/README.md. A newgraphs/pipes/jobs/subfolder has its ownREADME.mdlanding page.Design notes
requires.secretsis empty for all seven). Notes show how a parent builds headers from its own graph-scoped secret.job-run.notes.md: request fields, response fieldsid,status,status_url,url,result,error, the statusesqueued,running,completed,failed,cancelled,rejected,expired, an integerpoll_after_secondshint, andidempotency_key. They use the built-in HTTP Submit Job and HTTP Poll Job nodes and add no node types.external-writeinrequires.capabilities.metadata.template.statusisnetwork-probefor LLM Call and Audit Log Write,media-worker-probefor Media Probe Normalize, andmock-only-probefor Job Run, Approval Gate, Render Job, and Fallback Match. The three job graphs ship as mock-only because they have not been run against a live job service.pipes,http,ai,operations,automation,rendering,transforms,media,video).Known caveats
rejectedandexpiredas failure statuses, but whether a failed poll halts dependent nodes is unverified. The notes and the graph description say the service that performs the effect must confirm the approval itself (read the job at itsstatus_urland require statuscompleted) before acting.url,sink_url,base_url) receive the headers, including any bearer token. The notes tell authors to pass a literal URL from the parent and never feed it from untrusted data, and to use a low-privilege token. Happy to rework these to pin an origin through a variable if reviewers prefer.status_urlthe service returns, with the same headers. Whether it enforces a same-host rule is unverified, so the notes advise pointing the graphs only at a service the author controls.media-workerworker. Its default mapping is a guess at the probe key layout and needs one run to confirm.left, so the join was never empty and the fixture was not used. The notes say how to check with an emptyleftlist.Verification
Run from the repository root on this branch:
python3 scripts/validate_examples.pyexits 0: "Validated 69 Subfork example graphs." (62 existing plus 7 new.)python3 scripts/validate_examples.py --node-catalog-url https://subfork.com/api/v1/nodesexits 0: "Checked node types against the target catalog (75 available types)."python3 -m unittest discover -s scripts -p 'test_validate*.py'runs 6 tests, OK.mkpages build . --output .mkpages(mkpages 0.4.1) builds 105 pages with the seven new notes pages and thepipes/jobslanding page present. The PNG social card is Linux-only, so the SVG fallback was used on macOS.POST /graphs/validate(server-side validation) on 2026-11-05. A deliberately broken definition (unknown node type) was rejected with HTTP 422, so the check is not a no-op.reply_pathto read the echoed prompt instead of the defaultchoices.0.message.content.All seven graphs use only node versions
1.0.0.Not verified
media-workerworker./api/v1/version,/api/v1/health,/api/v1/status,/api/version,/api/v1/openapi.json,/api/openapi.json,/api/v1/docs, and/api/docs./api/healthreturns only{"status":"ok"}, and the site root HTML shell does not state a version. Each note records the check date and node catalog size instead: the catalog served 75 node types on 2026-11-05, and every node used here is version1.0.0.Questions for maintainers
graphs/pipes/jobs/an acceptable new subfolder, or would you prefer these under existing folders?pipesandmediacategories as proposed?jobsfolder can go separately from the other four.