@weftlet/toolkit 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +168 -1
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/dist/application/application.d.ts +10 -0
- package/dist/application/application.js +20 -0
- package/dist/application/document-code-bindings.d.ts +11 -0
- package/dist/application/document-code-bindings.js +25 -0
- package/dist/application/document-obligations.d.ts +8 -0
- package/dist/application/document-obligations.js +11 -0
- package/dist/application/draft-facts.d.ts +3 -0
- package/dist/application/draft-facts.js +37 -0
- package/dist/application/extraction-identity.d.ts +2 -2
- package/dist/application/extraction-identity.js +7 -1
- package/dist/application/extractor-results.d.ts +6 -0
- package/dist/application/extractor-results.js +6 -0
- package/dist/application/hydrator.js +20 -3
- package/dist/application/mapping-proposals.d.ts +108 -0
- package/dist/application/mapping-proposals.js +142 -0
- package/dist/application/mapping-service.d.ts +2 -0
- package/dist/application/mapping-service.js +5 -0
- package/dist/application/overlay.js +36 -22
- package/dist/application/saved-code-coverage.d.ts +40 -0
- package/dist/application/saved-code-coverage.js +20 -0
- package/dist/application/saved-compatibility.d.ts +38 -0
- package/dist/application/saved-compatibility.js +20 -0
- package/dist/application/saved-evidence.d.ts +17 -11
- package/dist/application/saved-evidence.js +44 -40
- package/dist/application/saved-exploration.d.ts +57 -0
- package/dist/application/saved-exploration.js +21 -0
- package/dist/application/saved-paths.d.ts +58 -0
- package/dist/application/saved-paths.js +20 -0
- package/dist/extraction/call-syntax.d.ts +18 -0
- package/dist/extraction/call-syntax.js +61 -0
- package/dist/extraction/canonical-document-links.d.ts +5 -1
- package/dist/extraction/canonical-document-links.js +4 -4
- package/dist/extraction/code-inventory.d.ts +6 -0
- package/dist/extraction/code-inventory.js +26 -0
- package/dist/extraction/document-code-bindings.d.ts +14 -0
- package/dist/extraction/document-code-bindings.js +121 -0
- package/dist/extraction/document-obligations.d.ts +12 -0
- package/dist/extraction/document-obligations.js +112 -0
- package/dist/extraction/mapping-candidates.d.ts +13 -0
- package/dist/extraction/mapping-candidates.js +46 -0
- package/dist/extraction/mapping-output.d.ts +75 -0
- package/dist/extraction/mapping-output.js +53 -0
- package/dist/extraction/mapping-plan.d.ts +7 -0
- package/dist/extraction/mapping-plan.js +117 -0
- package/dist/extraction/mapping-prompt.d.ts +2 -0
- package/dist/extraction/mapping-prompt.js +17 -0
- package/dist/extraction/mapping-provider.d.ts +15 -0
- package/dist/extraction/mapping-provider.js +60 -0
- package/dist/extraction/mapping-request.d.ts +3 -0
- package/dist/extraction/mapping-request.js +32 -0
- package/dist/extraction/ontology.js +2 -2
- package/dist/extraction/routing.js +5 -20
- package/dist/extraction/scip-occurrences.d.ts +3 -0
- package/dist/extraction/scip-occurrences.js +102 -0
- package/dist/extraction/scip-ranges.d.ts +6 -0
- package/dist/extraction/scip-ranges.js +31 -0
- package/dist/extraction/scip-runtime.d.ts +39 -0
- package/dist/extraction/scip-runtime.js +8 -0
- package/dist/extraction/scip-symbols.d.ts +21 -0
- package/dist/extraction/scip-symbols.js +91 -0
- package/dist/extraction/semantic.d.ts +1 -1
- package/dist/extraction/semantic.js +5 -17
- package/dist/extraction/static-calls.d.ts +10 -0
- package/dist/extraction/static-calls.js +133 -0
- package/dist/extraction/static.d.ts +3 -20
- package/dist/extraction/static.js +33 -104
- package/dist/extraction/symbol-resolution.d.ts +12 -0
- package/dist/extraction/symbol-resolution.js +51 -0
- package/dist/extraction/symbol-selectors.d.ts +11 -0
- package/dist/extraction/symbol-selectors.js +51 -0
- package/dist/graph/binding-rdf.d.ts +7 -0
- package/dist/graph/binding-rdf.js +109 -0
- package/dist/graph/call-rdf.d.ts +4 -0
- package/dist/graph/call-rdf.js +94 -0
- package/dist/graph/call-shapes.d.ts +2 -0
- package/dist/graph/call-shapes.js +28 -0
- package/dist/graph/code-coverage-projection.d.ts +9 -0
- package/dist/graph/code-coverage-projection.js +117 -0
- package/dist/graph/code-coverage-renderer.d.ts +2 -0
- package/dist/graph/code-coverage-renderer.js +15 -0
- package/dist/graph/code-coverage-request.d.ts +6 -0
- package/dist/graph/code-coverage-request.js +19 -0
- package/dist/graph/code-coverage.d.ts +6 -0
- package/dist/graph/code-coverage.js +54 -0
- package/dist/graph/code-description.d.ts +4 -0
- package/dist/graph/code-description.js +24 -0
- package/dist/graph/code-rdf.d.ts +5 -0
- package/dist/graph/code-rdf.js +72 -0
- package/dist/graph/compatibility-context.d.ts +2 -0
- package/dist/graph/compatibility-context.js +18 -0
- package/dist/graph/compatibility-renderer.d.ts +2 -0
- package/dist/graph/compatibility-renderer.js +45 -0
- package/dist/graph/compatibility-request.d.ts +3 -0
- package/dist/graph/compatibility-request.js +18 -0
- package/dist/graph/compatibility.d.ts +7 -0
- package/dist/graph/compatibility.js +67 -0
- package/dist/graph/constraint-comparison.d.ts +7 -0
- package/dist/graph/constraint-comparison.js +49 -0
- package/dist/graph/coverage.d.ts +2 -2
- package/dist/graph/coverage.js +8 -3
- package/dist/graph/diagnostics.d.ts +1 -1
- package/dist/graph/diagnostics.js +10 -6
- package/dist/graph/evidence-description.d.ts +3 -0
- package/dist/graph/evidence-description.js +13 -0
- package/dist/graph/identity-preflight.js +1 -1
- package/dist/graph/neighborhood-renderer.d.ts +2 -0
- package/dist/graph/neighborhood-renderer.js +38 -0
- package/dist/graph/neighborhood-request.d.ts +9 -0
- package/dist/graph/neighborhood-request.js +37 -0
- package/dist/graph/neighborhood.d.ts +8 -0
- package/dist/graph/neighborhood.js +100 -0
- package/dist/graph/obligation-rdf.d.ts +5 -0
- package/dist/graph/obligation-rdf.js +67 -0
- package/dist/graph/obligation-shapes.d.ts +2 -0
- package/dist/graph/obligation-shapes.js +32 -0
- package/dist/graph/path-request.d.ts +11 -0
- package/dist/graph/path-request.js +24 -0
- package/dist/graph/path-search.d.ts +45 -0
- package/dist/graph/path-search.js +101 -0
- package/dist/graph/paths-renderer.d.ts +2 -0
- package/dist/graph/paths-renderer.js +36 -0
- package/dist/graph/paths.d.ts +7 -0
- package/dist/graph/paths.js +74 -0
- package/dist/graph/query.js +23 -6
- package/dist/graph/rdf.js +26 -0
- package/dist/graph/shacl-shapes.js +70 -0
- package/dist/graph/snapshot-context.d.ts +3 -0
- package/dist/graph/snapshot-context.js +8 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.js +22 -0
- package/dist/infrastructure/artifact-paths.d.ts +4 -0
- package/dist/infrastructure/artifact-paths.js +14 -0
- package/dist/infrastructure/json-digest.d.ts +2 -0
- package/dist/infrastructure/json-digest.js +3 -0
- package/dist/infrastructure/unique-json.d.ts +2 -0
- package/dist/infrastructure/unique-json.js +20 -0
- package/dist/interfaces/cli.js +33 -1
- package/dist/interfaces/code-coverage.d.ts +46 -0
- package/dist/interfaces/code-coverage.js +18 -0
- package/dist/interfaces/graph-compatibility.d.ts +35 -0
- package/dist/interfaces/graph-compatibility.js +21 -0
- package/dist/interfaces/graph-exploration.d.ts +59 -0
- package/dist/interfaces/graph-exploration.js +27 -0
- package/dist/interfaces/graph-paths.d.ts +77 -0
- package/dist/interfaces/graph-paths.js +31 -0
- package/dist/interfaces/graph-query-args.d.ts +2 -0
- package/dist/interfaces/graph-query-args.js +25 -0
- package/dist/interfaces/mapping-proposals.d.ts +204 -0
- package/dist/interfaces/mapping-proposals.js +74 -0
- package/dist/interfaces/mcp.js +31 -3
- package/dist/storage/mapping-proposals.d.ts +9 -0
- package/dist/storage/mapping-proposals.js +42 -0
- package/dist/storage/storage.js +41 -13
- package/dist/visualization/evidence-sources.d.ts +6 -0
- package/dist/visualization/evidence-sources.js +19 -0
- package/dist/visualization/viewer-interaction.d.ts +5 -8
- package/dist/visualization/viewer-interaction.js +46 -44
- package/dist/visualization/visualization.js +14 -5
- package/docs/1.0-WORK-QUEUE.md +38 -0
- package/docs/ADR-028-bounded-artifact-paths.md +58 -0
- package/docs/ADR-029-exact-graph-neighborhoods.md +70 -0
- package/docs/ADR-030-bounded-evidence-paths.md +97 -0
- package/docs/ADR-031-code-extractor-selection.md +91 -0
- package/docs/ADR-032-scip-code-evidence.md +73 -0
- package/docs/ADR-033-document-symbol-bindings.md +83 -0
- package/docs/ADR-034-mapping-gaps.md +80 -0
- package/docs/ADR-035-static-call-evidence.md +78 -0
- package/docs/ADR-036-contract-obligation-declarations.md +124 -0
- package/docs/ADR-037-selected-contract-compatibility.md +93 -0
- package/docs/ADR-038-monorepo-code-coverage.md +105 -0
- package/docs/ADR-039-mapping-proposals.md +119 -0
- package/docs/CONSUMER-TRIAL.md +6 -4
- package/docs/GRAPHIFY-EVALUATION.md +87 -0
- package/docs/PRE-1.0-BASELINE.md +141 -0
- package/docs/RELEASE-1.0-PLAN.md +37 -15
- package/docs/RELEASING.md +3 -3
- package/docs/ROADMAP.md +39 -11
- package/docs/VALIDATION.md +501 -0
- package/docs/assessments/pre-1.0-2026-10-28.json +200 -0
- package/docs/extraction-manifest.json +258 -23
- package/package.json +8 -4
- package/templates/context-graph-development/SKILL.md +30 -1
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# ADR 039: Opt-in, unreviewed rule-to-function proposals
|
|
2
|
+
|
|
3
|
+
Status: implementation and public protocol prepared, November 2, 2026. The maintainer authorized
|
|
4
|
+
the 0.7.0 acceptance release with live proposal validation tentative and deferred. Live model
|
|
5
|
+
accuracy and independent usefulness assessment remain unproven.
|
|
6
|
+
|
|
7
|
+
## Decision and scope
|
|
8
|
+
|
|
9
|
+
The maintainer accepted the bounded inference recommendation after ADR 034's deterministic
|
|
10
|
+
assessment. Add an explicit proposal operation alongside saved graph evidence. It addresses
|
|
11
|
+
documented rules with file associations or document links but no exact symbol binding. It does
|
|
12
|
+
not generate missing intent, approve mappings, prove compliance, backfill documents, alter
|
|
13
|
+
semantic hydration or insert proposed relationships into the canonical graph.
|
|
14
|
+
|
|
15
|
+
One request chooses an exact saved snapshot, business rule ID, approved source document and
|
|
16
|
+
one to four already-linked files. Eligible business nodes are Invariant, Capability, Workflow
|
|
17
|
+
and Contract. A source must be declared, with intent role or legacy unspecified role; recorded
|
|
18
|
+
ownership must be resolved or not-required. Existing extracted subject assertions retain their
|
|
19
|
+
review state. Source approval never approves their interpretation or a proposed mapping.
|
|
20
|
+
|
|
21
|
+
The no-model plan checks existing explicit bindings, source intent/mapping diagnostics, recorded
|
|
22
|
+
code coverage, regular committed files, exact source digests/revisions and indexed callable name
|
|
23
|
+
occurrences. It rejects unknown/omitted indexing and ambiguous named callable identities. Syntax
|
|
24
|
+
must have an actual implementation body. Canonical test/spec file identities are validation
|
|
25
|
+
evidence and cannot be proposed as product implementations by this operation. Ambient declarations
|
|
26
|
+
and anonymous callables are counted as excluded; this increment does not invent identities for
|
|
27
|
+
them. Code is joined by exact indexed
|
|
28
|
+
positions, never label similarity. Co-location supplies candidate scope, not an implementation claim.
|
|
29
|
+
|
|
30
|
+
The selected source document and callable excerpts are read at the saved commit, independently
|
|
31
|
+
of the active checkout. An old snapshot can be used deliberately and remains labeled stale with
|
|
32
|
+
excluded working changes; it cannot pass current-diff validation. Draft-overlay proposal creation
|
|
33
|
+
is deferred because captured source bytes need a distinct durable input contract. Existing
|
|
34
|
+
overlay graphs remain queryable.
|
|
35
|
+
|
|
36
|
+
## Bounds and authority
|
|
37
|
+
|
|
38
|
+
Defaults: at most eight candidates, 32 KiB of prompt/schema input, and one provider request.
|
|
39
|
+
Explicit request ceilings are 20 candidates and 128 KiB input. There are at most five source reads,
|
|
40
|
+
each at most 1 MiB according to immutable Git tree metadata. A candidate/input overflow blocks
|
|
41
|
+
execution rather than selecting an unreported subset. The configured semantic timeout (up to
|
|
42
|
+
600000 ms) applies to the provider phase; mapping does not inherit semantic automatic retries.
|
|
43
|
+
Oversized previews bound retained candidate metadata and report observed/returned counts with
|
|
44
|
+
`candidateEnumeration.complete: false`; incomplete enumeration never runs a provider. Candidate
|
|
45
|
+
`excerptBytes` exposes a body that exceeds the input limit without retaining its oversized text.
|
|
46
|
+
For blocked plans, `inputBytes` counts only prepared input, not omitted candidate material.
|
|
47
|
+
These are request/byte/time bounds, not a token billing or dollar cap.
|
|
48
|
+
|
|
49
|
+
Provider output must select exact candidates and cite both the documented rule's supporting
|
|
50
|
+
source span and the candidate's implementation extent. Unknown/duplicate IDs, unsupported line
|
|
51
|
+
ranges, extra fields, invalid confidence and inconsistent proposal/abstention states fail before
|
|
52
|
+
storage. Model-reported confidence is uncalibrated. Structural citation validation cannot prove
|
|
53
|
+
the proposed interpretation is correct. Rationale and source text remain untrusted content.
|
|
54
|
+
|
|
55
|
+
The result is either a proposed set or an explicit abstention. Every saved result is permanently
|
|
56
|
+
`authority: inferred`, `extractionReview: unreviewed`, `establishesCompliance: false`. Original
|
|
57
|
+
subject/association facts and code-definition proofs are retained, including their independent
|
|
58
|
+
authority and provenance. No rule violation, test success, compatibility or approval is inferred.
|
|
59
|
+
|
|
60
|
+
## Provider, cache and failure contract
|
|
61
|
+
|
|
62
|
+
Use the existing Codex CLI authentication configuration: ChatGPT by default; API-key mode only
|
|
63
|
+
when explicitly configured. The runner is isolated, read-only, ephemeral, ignores user rules and
|
|
64
|
+
configuration, disables shell tools, and requires structured output. Authentication never falls
|
|
65
|
+
back to another billing mode. Fake-transport tests cover the invocation; live operation is a
|
|
66
|
+
separate validation. Module providers must explicitly export `createMappingProposalProvider`
|
|
67
|
+
with a matching configured identity and a `propose(input, { signal, timeoutMs })` method. The
|
|
68
|
+
semantic-provider interface alone does not qualify. Local modules are trusted code and must honor
|
|
69
|
+
abort signals, bound their own work, and keep input/credentials out of logs.
|
|
70
|
+
|
|
71
|
+
The outer deadline/cancellation race rejects uncooperative providers and prevents late results
|
|
72
|
+
from publication. Progress contains only phase, opaque operation ID and elapsed time. Unknown
|
|
73
|
+
provider errors never expose stderr/prompts. Publication after validation is a single atomic
|
|
74
|
+
commit point; cancelling after a completed publication does not erase a valid artifact.
|
|
75
|
+
|
|
76
|
+
Proposals use their own versioned identity and `artifacts/mapping-proposals` namespace. Keys bind
|
|
77
|
+
the exact saved snapshot/facts, requested scope/budgets, source input digest, provider/model and
|
|
78
|
+
reasoning configuration. Operational timeout/retry changes do not invalidate artifacts. Module
|
|
79
|
+
authors must version their identity when implementation or output-affecting configuration changes;
|
|
80
|
+
deadline/retry fields are operational under this contract. Identity
|
|
81
|
+
hashes use persisted JSON semantics so optional undefined fields survive a write/read round trip.
|
|
82
|
+
Input/plan/output checks run again on reuse; model/prompt/code/source changes require a new key.
|
|
83
|
+
This initial cache is conservative and snapshot-bound: it does not reuse across a new snapshot,
|
|
84
|
+
even when an unrelated file changed. No force overwrite or automatic baseline acceptance exists.
|
|
85
|
+
|
|
86
|
+
Bounded hash filenames and atomic hard-link publication preserve a concurrent winner. Concurrent
|
|
87
|
+
cache misses can each spend their independently authorized request; there is no cross-process
|
|
88
|
+
provider single-flight lock. Conflicting
|
|
89
|
+
outputs fail without overwriting it. Existing graph heads, snapshots and semantic artifacts are
|
|
90
|
+
unchanged. Saved proposal reads require neither provider initialization nor source re-extraction;
|
|
91
|
+
they bind the exact snapshot and report current evidence state. Integrity hashes detect mismatches,
|
|
92
|
+
not malicious rewriting of a local artifact and all its hashes.
|
|
93
|
+
|
|
94
|
+
## Interfaces and acceptance
|
|
95
|
+
|
|
96
|
+
`mappings plan --request request.json` previews scope, candidate proofs, exclusions, bytes,
|
|
97
|
+
cache identity, readiness and expected request count. `mappings propose --request request.json
|
|
98
|
+
--allow-model` explicitly permits one new request; a cache hit needs no model permission.
|
|
99
|
+
`mappings read --snapshot ID --key KEY` reads a saved result. CLI JSON is the shared API result.
|
|
100
|
+
MCP exposes only `mapping.plan` and `mapping.proposals`, both read-only and unable to spend model
|
|
101
|
+
requests. Follow returned exact symbol IDs through `graph.neighbors`/`graph.paths`. Normal graph
|
|
102
|
+
queries and the viewer do not silently acquire proposed edges.
|
|
103
|
+
|
|
104
|
+
Deterministic public tests cover real prose extraction/SCIP, misleading-name candidates,
|
|
105
|
+
cross-domain file rejection, declared versus unreviewed authority, citations, missing/omitted/
|
|
106
|
+
declaration-only code, budgets, model consent, reuse with unavailable provider and dirty checkout,
|
|
107
|
+
rename/delete invalidation, historical reads, timeout/cancellation and immutable concurrent writes.
|
|
108
|
+
Fresh packed installation exercises actual CLI/MCP and exported APIs with a visibly canned module.
|
|
109
|
+
No canned result is semantic-quality evidence.
|
|
110
|
+
|
|
111
|
+
[The predeclared live protocol](../evaluations/mapping-proposals/README.md) permits three bounded
|
|
112
|
+
public requests only after usage approval. It separates target accuracy, abstention, output
|
|
113
|
+
validity, infrastructure failure and independent rationale/usefulness review. On November 2,
|
|
114
|
+
the maintainer requested publication before live integration testing. This scoped deferral permits
|
|
115
|
+
the optional feature in the 0.7.0 acceptance candidate; it does not record a live proposal pass or
|
|
116
|
+
official 1.0 approval. Existing consumer Codex hydration validates the established extraction flow,
|
|
117
|
+
not this new proposal operation or its semantic accuracy. B6 still owns candidate hydration/repeat,
|
|
118
|
+
real agent usefulness and the final 1.0 decision. The public three-request protocol remains
|
|
119
|
+
available for later separately authorized evaluation; this release performs no model requests.
|
package/docs/CONSUMER-TRIAL.md
CHANGED
|
@@ -134,10 +134,12 @@ does not establish what the agent saw. Also retain a short account of what the a
|
|
|
134
134
|
in its implementation or test plan because of these results, and the actual test outcomes.
|
|
135
135
|
|
|
136
136
|
Retain the selected immutable snapshot, not just the mutable head pointer. With workspace
|
|
137
|
-
storage,
|
|
138
|
-
`storagePath` is `.context-graph`.
|
|
139
|
-
|
|
140
|
-
|
|
137
|
+
storage, snapshots are under `<repositoryRoot>/<storagePath>/snapshots/`; the default
|
|
138
|
+
`storagePath` is `.context-graph`. Long physical filenames are hashed: identify the selected
|
|
139
|
+
record by its full `manifest.snapshotId`, not by constructing a filename from that ID.
|
|
140
|
+
`storageScope: "user"` instead uses a configuration/checkout hash directory under
|
|
141
|
+
`~/.cache/context-graph`. Preserve the original store and exact configuration if its resolved
|
|
142
|
+
path is uncertain. Semantic artifacts under `artifacts/semantic/`
|
|
141
143
|
contain model output; keep them locally if extraction debugging is needed. They are not
|
|
142
144
|
required to query an existing snapshot. Do not copy credentials or whole account directories.
|
|
143
145
|
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Graphify evaluation for the pre-1.0 baseline
|
|
2
|
+
|
|
3
|
+
Status: B2b measured on 2026-10-29. [ADR 031](ADR-031-code-extractor-selection.md) selects
|
|
4
|
+
**keeping SCIP and improving its declaration/reference projection**. Production implementation
|
|
5
|
+
is B3a; no Graphify runtime or dependency is added to Weftlet.
|
|
6
|
+
|
|
7
|
+
The [durable public measurement record](../evaluations/code-graph-results/2026-10-29/README.md)
|
|
8
|
+
contains tool receipts, native outputs, per-case scores, costs, failed attempts and disclosed
|
|
9
|
+
harness corrections. On the 51 frozen cases, raw SCIP resolves 15/15 declaration families and
|
|
10
|
+
16/16 references; Graphify resolves 14/15 families, 8/16 references and 7/10 native calls.
|
|
11
|
+
Current Weftlet discards useful raw SCIP detail. Calls remain unsupported by the SCIP projections.
|
|
12
|
+
No named false-join negative was asserted, but these are labeled-case metrics, not whole-graph
|
|
13
|
+
precision. Graphify is faster on these tiny inputs; the small Linux-only study does not establish
|
|
14
|
+
production performance or universal language support.
|
|
15
|
+
|
|
16
|
+
All arms preserve fixed, cited business controls and strict RDF/SHACL parity. They do not infer
|
|
17
|
+
missing queue wiring or prove undocumented rule-to-function mappings. Those remain B3–B5 work.
|
|
18
|
+
No paid/model calls or private consumer material were used. The pinned Graphify source API was
|
|
19
|
+
installed only in an isolated experiment, using its unchanged lock and 30 runtime distributions.
|
|
20
|
+
Its 0.9.97 manifest/0.9.96 lock-project discrepancy is recorded; no project distribution was installed.
|
|
21
|
+
|
|
22
|
+
The remainder records the preliminary source review and the predeclared comparison protocol.
|
|
23
|
+
The frozen corpus, labels and budgets at `f1844f31717341f5ff95314a68def80eae509734` remain unchanged.
|
|
24
|
+
|
|
25
|
+
## Reviewed candidate
|
|
26
|
+
|
|
27
|
+
- Repository: [Graphify-Labs/graphify](https://github.com/Graphify-Labs/graphify).
|
|
28
|
+
- Reviewed commit: `0a8cd4e1e342235fe53e881fb5d591bf0460071f` on its `v8` branch.
|
|
29
|
+
- That commit's [package manifest](https://github.com/Graphify-Labs/graphify/blob/0a8cd4e1e342235fe53e881fb5d591bf0460071f/pyproject.toml)
|
|
30
|
+
identifies distribution `graphifyy`, version `0.9.97`, Python >=3.10 and Apache-2.0 licensing.
|
|
31
|
+
This is source metadata, not verification that a particular registry archive matches it.
|
|
32
|
+
|
|
33
|
+
The [README](https://github.com/Graphify-Labs/graphify/blob/0a8cd4e1e342235fe53e881fb5d591bf0460071f/README.md)
|
|
34
|
+
describes local tree-sitter extraction, broader language coverage, document/rationale extraction,
|
|
35
|
+
paths and agent integration. Marketing/benchmark claims are not adopted as Weftlet measurements.
|
|
36
|
+
The code inspected below supports evaluating it as a richer code-evidence producer; it does not
|
|
37
|
+
establish that it is more accurate than compiler-backed TypeScript indexing on our tasks.
|
|
38
|
+
|
|
39
|
+
## Findings from source inspection
|
|
40
|
+
|
|
41
|
+
| Area | Observed at the pinned revision | Implication for an experiment |
|
|
42
|
+
| --- | --- | --- |
|
|
43
|
+
| Code granularity | [Extractor models](https://github.com/Graphify-Labs/graphify/blob/0a8cd4e1e342235fe53e881fb5d591bf0460071f/graphify/extractors/models.py) represent function/call syntax, declarations, imports, aliases, exports and symbol uses. The [engine](https://github.com/Graphify-Labs/graphify/blob/0a8cd4e1e342235fe53e881fb5d591bf0460071f/graphify/extractors/engine.py) emits code relationships and source locations. | Evaluate function/method/call relationships that our current file/shared-symbol projection does not expose. AST structure alone does not establish complete dynamic calls or data flow. |
|
|
44
|
+
| Workspace resolution | [Resolution code](https://github.com/Graphify-Labs/graphify/blob/0a8cd4e1e342235fe53e881fb5d591bf0460071f/graphify/extractors/resolution.py) handles TypeScript aliases, project references, workspace/import/export origins and ambiguous barrel candidates. Its comments explicitly describe skipped npm-package tsconfig extensions. | Exercise our actual alias/barrel/same-name/TSX cases rather than assuming all pnpm projects resolve. Preserve unresolved and ambiguous outcomes. |
|
|
45
|
+
| Identity | [Base identity helpers](https://github.com/Graphify-Labs/graphify/blob/0a8cd4e1e342235fe53e881fb5d591bf0460071f/graphify/extractors/base.py) derive file/symbol prefixes from paths; comments describe a later repository-relative remap. | Test roots, collisions, repeated names, rename/delete and clean/dirty isolation. Map imported entities into Weftlet's canonical identity and snapshot provenance instead of adopting labels as join keys. |
|
|
46
|
+
| Evidence semantics | Extracted edges carry source file/location and `EXTRACTED` or `INFERRED` tags. | These tags do not mean owner-approved intent, observed runtime behavior or successful test execution. Measure citation precision and retain derivation when transforming facts into RDF. |
|
|
47
|
+
| Deployment | The manifest depends on Python, NetworkX and multiple tree-sitter grammars; its optional services/providers are separate features. | Account for installation, platform support, artifact sizes, process boundaries, licensing and maintenance. Do not introduce hosted services or paid inference to compare static code extraction. |
|
|
48
|
+
|
|
49
|
+
Graphify already covers documents and rationale too. The comparison initially isolates code
|
|
50
|
+
extraction so that changing document inputs/providers cannot explain an apparent code improvement.
|
|
51
|
+
Its [published benchmark](https://github.com/Graphify-Labs/graphify/blob/0a8cd4e1e342235fe53e881fb5d591bf0460071f/BENCHMARKS.md)
|
|
52
|
+
reports an ERPNext six-question evaluation and a small FastAPI inferred-edge audit, including
|
|
53
|
+
noisier same-name test helpers. Those are upstream-reported results, not a TypeScript comparison
|
|
54
|
+
against Weftlet or SCIP and not evidence for complete asynchronous or business-rule linkage.
|
|
55
|
+
|
|
56
|
+
## Fixed comparison protocol
|
|
57
|
+
|
|
58
|
+
1. Freeze public source commits, expected relationships, negative cases, query/page budgets,
|
|
59
|
+
platform, versions and resource ceilings before measurement. Reuse the A1–A3 fixtures and
|
|
60
|
+
the existing dispatch negative case; add function-level examples without changing old labels.
|
|
61
|
+
2. Compare **the current Weftlet SCIP projection**, **a bounded richer projection of raw SCIP**,
|
|
62
|
+
and **pinned Graphify static extraction**. Record raw index coverage separately from what
|
|
63
|
+
each adapter exposes. Do not attribute information discarded by our projection to SCIP itself.
|
|
64
|
+
3. Include exact symbols, local/private functions, aliases, barrel exports, overloads, duplicate
|
|
65
|
+
names in separate domains, test mocks, TSX and service packages. Include a declared queue
|
|
66
|
+
boundary, a stored-data handoff and an undeclared boundary. The expected result for an
|
|
67
|
+
unsupported boundary is an explicit gap, not a guessed edge based only on a matching string.
|
|
68
|
+
4. Hold business documents and their approved source classifications fixed. Check that the same
|
|
69
|
+
business-to-code links survive, then evaluate any finer function bindings separately. Keep
|
|
70
|
+
inferred mappings, source approval and reviewed assertions distinct.
|
|
71
|
+
5. Measure precision/recall against predeclared edges, correct task-level consumers, false joins,
|
|
72
|
+
unresolved targets, citation validity, identity stability, cold/repeat/edit time and peak memory.
|
|
73
|
+
Compare same-process and subprocess measurements honestly. Count install/transfer overhead.
|
|
74
|
+
6. Exercise deletion/rename, repeated clean runs, isolated committed materialization and dirty
|
|
75
|
+
queries. Retain old snapshots. Prove RDF/SPARQL/traversal equivalence for imported facts;
|
|
76
|
+
reject incompatible identities rather than weakening SHACL or dropping contradictory evidence.
|
|
77
|
+
7. Run in a disposable tool environment with model calls disabled. Record reproducible commands
|
|
78
|
+
and sanitized outputs. Any live semantic experiment needs a separate bounded budget and
|
|
79
|
+
authorization before substantial paid usage. No private application checkout is modified.
|
|
80
|
+
8. Produce an ADR choosing to keep SCIP, improve its projection, add an optional supported
|
|
81
|
+
producer, or replace the default. Replacement is a valid outcome if evidence supports it;
|
|
82
|
+
two permanently required indexers are not a prerequisite. If a change is selected, implement
|
|
83
|
+
compatibility/versioning and fresh-install tests as a separate milestone before publication.
|
|
84
|
+
|
|
85
|
+
Graphify does not become a second authority for product intent merely by importing its graph.
|
|
86
|
+
Neither tool can establish an undocumented business mapping from graph density alone. B3/B4
|
|
87
|
+
must address those evidence and meaning questions independently of the code backend decision.
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Business-context baseline before 1.0
|
|
2
|
+
|
|
3
|
+
Status: added at the maintainer's request on 2026-10-28 after publication of the 0.6.0
|
|
4
|
+
candidate. This extends the original T01–T10 task list; its completion did not establish
|
|
5
|
+
automatic rule-to-function discovery or complete agent exploration. The candidate remains
|
|
6
|
+
available for TradePilot acceptance while the work below is assessed. No new release is
|
|
7
|
+
announced by this plan.
|
|
8
|
+
|
|
9
|
+
Consumer update: the physical artifact filename blocker shipped in **0.6.1**, with native
|
|
10
|
+
Windows traversal → unchanged repeat → clean comparison passing. Use 0.6.1 for the private
|
|
11
|
+
rerun; [validation](VALIDATION.md) records the public release evidence. This storage fix does
|
|
12
|
+
not close any of B1–B6 below. Resume B1 and the bounded B2 evaluation after the blocker release.
|
|
13
|
+
|
|
14
|
+
The maintainer now considers this the main reported consumer blocker and requests the next live
|
|
15
|
+
TradePilot test after a new candidate. [The implementation queue](1.0-WORK-QUEUE.md) breaks B1–B6
|
|
16
|
+
into bounded increments; B1a exact-node neighborhoods and B1b bounded paths are implemented for the next candidate.
|
|
17
|
+
B2a's public comparison protocol is frozen; B2b's measured decision retains SCIP and improves its
|
|
18
|
+
projection ([ADR 031](ADR-031-code-extractor-selection.md)). This schedules acceptance;
|
|
19
|
+
it does not claim an additional private run or a full product-usefulness pass.
|
|
20
|
+
|
|
21
|
+
The product goal is to let an agent starting with a task or code change retrieve the relevant
|
|
22
|
+
product obligations, understand their connections across domains and asynchronous service
|
|
23
|
+
boundaries, and inspect the implementations, contracts and evidence behind those connections.
|
|
24
|
+
The agent must be able to investigate further without confusing a bounded response with
|
|
25
|
+
complete coverage. A functioning extraction/publication pipeline is necessary but insufficient.
|
|
26
|
+
|
|
27
|
+
## What we checked now
|
|
28
|
+
|
|
29
|
+
Runtime source baseline: `9b4acffe1c4d35f9fd2f91132c576f8934658677`, the documentation follow-up
|
|
30
|
+
to release source `b4c808b9221c5c82f9f7326a310e966d1fee2888`. Both package versions are 0.6.0.
|
|
31
|
+
New acceptance tests use that unchanged runtime. Results and commands are recorded in
|
|
32
|
+
[the assessment](assessments/pre-1.0-2026-10-28.json) and [validation](VALIDATION.md).
|
|
33
|
+
|
|
34
|
+
| Acceptance case | Current result | What remains unproven or missing |
|
|
35
|
+
| --- | --- | --- |
|
|
36
|
+
| **A1 — Business context across an asynchronous or stored-data boundary** | **Bounded mechanism PASS.** An upstream file has no code/symbol connection to the downstream service in the control. Adding a cited workflow handoff makes execution, notifications, mobile and a test reachable. Both producer and consumer freshness obligations survive with their citations and unreviewed assertion authority. An unrelated domain with the same rule label stays excluded. | This is extraction from a deterministic public prose grammar. No live semantic comprehension, actual database/BullMQ delivery, automatic business compatibility verdict or private consumer acceptance is established. |
|
|
37
|
+
| **A2 — Progressive agent exploration** | **Existing operations PASS; requested experience PARTIAL.** Small pages through the actual MCP facade exhaust to exactly the larger scan without duplicates. A focused follow-up retrieves the downstream rule. Depth exhaustion is explicit; changing the query rejects an old continuation. | No dedicated exact-node neighbor/path MCP operation with relation/direction filters or explicit unexplored neighbor inventory. Scripted facade requests are not an autonomous-agent usefulness study or a new transport test. |
|
|
38
|
+
| **A3 — Multiple services and client packages in one monorepo** | **Configured public fixture PASS.** Real SCIP resolves a re-exported workspace contract used by API and TSX client code. Document relationships connect separately located API, execution and notification services and the client. Repeat hydration reuses all five documents with unchanged snapshot identity/content. | A synthetic pnpm workspace uses explicit source includes/aliases in one indexing program. This is not a full pnpm installation, multiple service builds, Expo validation, automatic workspace discovery or a run against TradePilot. Per-service coverage and real package resolution still need consumer evidence. |
|
|
39
|
+
|
|
40
|
+
The [three new tests](../tests/business-context-acceptance.test.ts) hydrate an independent Git
|
|
41
|
+
repository through the real application, semantic-provider contract, SCIP, document linker,
|
|
42
|
+
RDF/SHACL, saved storage and query path. The fixture provider parses only its documented small
|
|
43
|
+
grammar; it makes no model request and does not inspect implementation bodies. The control
|
|
44
|
+
already includes both sides' documents. The only added source evidence is the collection-to-
|
|
45
|
+
execution handoff. It re-extracts one document and reuses four; the next unchanged hydration
|
|
46
|
+
extracts zero and reuses five. Prior snapshots remain intact. No facts are manually spliced into
|
|
47
|
+
the assembled graph to obtain the positive result.
|
|
48
|
+
|
|
49
|
+
The two freshness limits (600 seconds at collection, 60 seconds at execution) are deliberately
|
|
50
|
+
different. They can be compatible when the consumer checks freshness. The test asserts retrieval
|
|
51
|
+
of both obligations and **does not assert a conflict or compliance verdict**. Runtime evidence
|
|
52
|
+
and evaluated business invariants are empty. Source approval never approves the model assertion.
|
|
53
|
+
|
|
54
|
+
Existing routing, query, RDF and workspace-indexing tests were also rerun: **24 passed**, followed
|
|
55
|
+
by **3 new acceptance tests passed**. Existing routing negatives reject false same-channel joins
|
|
56
|
+
and ambiguous/missing endpoints. Existing indexing checks cover dirty inputs, renames and deletes.
|
|
57
|
+
These results supplement, and do not replace, the published release's validation record.
|
|
58
|
+
|
|
59
|
+
Reproduce the focused assessment from a configured development checkout:
|
|
60
|
+
|
|
61
|
+
```sh
|
|
62
|
+
pnpm exec vitest run tests/business-context-acceptance.test.ts tests/rdf.test.ts tests/routing.test.ts src/extraction/routing.test.ts src/extraction/scip-project.test.ts src/graph/query.test.ts
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Subsequent task list
|
|
66
|
+
|
|
67
|
+
These are bounded pre-1.0 investigations and implementation tasks, not a claim that the features
|
|
68
|
+
are delivered. Record decisions and exact acceptance evidence per task. Any deferral must be
|
|
69
|
+
explicitly reviewed with the maintainer; do not convert missing evidence into a pass. TradePilot
|
|
70
|
+
blockers take priority when its report arrives. Do not modify or audit its application here.
|
|
71
|
+
|
|
72
|
+
| ID | Task / next action | Acceptance boundary |
|
|
73
|
+
| --- | --- | --- |
|
|
74
|
+
| **B1** | **Exact graph exploration.** Specify and add bounded node lookup/neighbor expansion and dependency-path exploration through MCP and the shared query layer. | An agent can start from a returned stable node ID, select relation/direction and inspect another business area. Return citations, authority, snapshot identity, incomplete scope, pagination and remaining frontier. Test branches, cycles, ambiguous labels, deleted nodes and stale/mismatched continuations. Keep CLI/MCP/viewer on the same facts; preserve existing `impact.scan`. |
|
|
75
|
+
| **B2** | **Evaluate Graphify and current SCIP representation.** Run the fixed public comparison in [the research note](GRAPHIFY-EVALUATION.md) before choosing a code extraction backend or symbol schema. | Compare the current projection, richer use of raw SCIP and pinned Graphify on identical committed inputs. Measure correct/missing/false links, provenance, identity stability, costs and packaging. Produce a keep/improve/replace decision with evidence. Parallel use during evaluation does not mandate shipping two indexers. |
|
|
76
|
+
| **B3** | **Resolve business-to-implementation links at symbol/function level.** After B2, define canonical scoped code identities, retain same-file occurrences and resolve explicit document paths/symbol references to exact code entities. Add bounded static call analysis as a separate increment; evaluate a separate bounded inference pass only where explicit mapping evidence is insufficient. | Named functions, methods, aliases, overloads, same-name symbols and renamed/deleted targets resolve correctly or remain unresolved. Meet the same-file acceptance boundary below. Separate a cited declared mapping, a proposed inferred mapping and evidence of actual behavior. Record both document and code revisions/spans for derived links. A reviewer can follow a rule to its implementation and back. Code inference never supplies approval; full automatic documentation generation remains 2.0. |
|
|
77
|
+
| **B4** | **Cross-boundary obligations.** Represent and retrieve producer guarantees and consumer requirements through explicit data/event contracts, including applicable stage, domain, units, freshness and version where sources provide them. | Public cases cover a queue handoff, a write/read handoff, compatible differing limits with revalidation, a real documented incompatibility, missing links and same-name unrelated domains. Retrieve both sides and the implementation evidence. Potential model findings remain uncertain; hard failures require explicit approved deterministic rules. A graph link or SHACL pass is not a compatibility verdict. General reconciliation/approval UI remains 2.0. |
|
|
78
|
+
| **B5** | **Monorepo selection and coverage.** Assess diagnostics for selected services, client, shared packages, source aliases and excluded/unresolved code; improve the gaps found. | A configured multi-package TypeScript/TSX fixture and the consumer report identify which projects were selected, indexed and actually connected. Test barrel exports, independent service code, external unresolved dependencies and omitted projects. Missing resolution cannot be reported as zero impact or complete coverage. Cross-repository federation is a separate scope decision. |
|
|
79
|
+
| **B6** | **End-to-end product acceptance and release decision.** Combine the public evidence, B1–B5 decisions and TradePilot's next candidate report; ship bounded candidate changes as needed. | Predeclare tasks, correct downstream business obligations/implementations, known unrelated matches and query budgets before measuring. Retain actual requests, follow-up decisions and citations. Assess helpfulness and misses separately from hydration success. Complete full hydration/repeat and supported release checks; review any remaining limitations before a versioned 1.0 publication. |
|
|
80
|
+
|
|
81
|
+
Order: retain this A1–A3 baseline; triage incoming consumer blockers; specify B1 and run the
|
|
82
|
+
bounded B2 comparison; use that decision for B3; implement B4/B5 in independently testable
|
|
83
|
+
increments; close B6. Each implementation can ship in a minor candidate before 1.0. Changes to
|
|
84
|
+
retrieval semantics, extraction/cache identity or snapshot compatibility need explicit decisions
|
|
85
|
+
and regression evidence; no silent migration or history rewrite.
|
|
86
|
+
|
|
87
|
+
## Same-file exploration acceptance
|
|
88
|
+
|
|
89
|
+
The maintainer explicitly identified large files with many internal calls as a 1.0 concern after
|
|
90
|
+
the B2 comparison. Retain SCIP and address this gap without waiting for an application rewrite.
|
|
91
|
+
The following requirements extend B3; they do not change the frozen B2 cases or scores and are
|
|
92
|
+
not implementation or private consumer validation results.
|
|
93
|
+
|
|
94
|
+
1. Preserve local/private functions, methods, same-file references and multiple occurrences of
|
|
95
|
+
the same reference. Return exact source spans and enclosing callable where established;
|
|
96
|
+
file membership alone must not imply a call or make every function relevant.
|
|
97
|
+
2. In a separately testable call-analysis increment, distinguish a statically resolved direct
|
|
98
|
+
call from a type use, passing a function as a value, or registering a callback. Retain caller,
|
|
99
|
+
callee, callsite, resolution basis and uncertainty. A static edge does not prove runtime
|
|
100
|
+
execution; unresolved dispatch/callback targets remain explicit.
|
|
101
|
+
3. Starting with one exact function, let an agent retrieve incoming references/callers and
|
|
102
|
+
outgoing references/callees, follow a helper chain and inspect applicable documented rules
|
|
103
|
+
through the shared bounded API/MCP queries. Preserve direction, citations, authority, scope
|
|
104
|
+
and continuation. Avoid requiring the entire containing file as the initial context response.
|
|
105
|
+
4. Use an independently authored public fixture of roughly 3,000 lines with meaningful internal
|
|
106
|
+
helper chains, unrelated methods, private/local functions, recursion, shadowed names and
|
|
107
|
+
repeated callsites. Include a cross-file caller and a similar-looking implementation with a
|
|
108
|
+
distinct identity. Predeclare expected retrievals and query budgets before measuring; verify
|
|
109
|
+
extraction and actual agent-facing query results rather than hand-assembled edges. Record
|
|
110
|
+
bounded response size and misses. File length is a workload characteristic, not an
|
|
111
|
+
architectural violation or proof of modularity.
|
|
112
|
+
5. Check edits, line shifts, rename/delete, dirty overlays, historical evidence, strict RDF/SHACL
|
|
113
|
+
and shared-query parity. Preserve explicit rule-binding authority. Similar code or names do
|
|
114
|
+
not establish equivalent business behavior or justify merging identities; existing duplication
|
|
115
|
+
signals still require semantic review. Duplicate-behavior detection is not added by this task.
|
|
116
|
+
|
|
117
|
+
Implement richer entities/occurrences first, then explicit document bindings and the separate
|
|
118
|
+
call-analysis increment. Select the call producer using focused evidence; this does not select
|
|
119
|
+
Graphify as a dependency or promise complete call/data-flow analysis. Agent usefulness still
|
|
120
|
+
needs B6's live consumer evaluation after the candidate is published.
|
|
121
|
+
|
|
122
|
+
## Consumer report to reconcile when available
|
|
123
|
+
|
|
124
|
+
Retain the private configuration, documents, snapshots and transcripts with TradePilot. Share
|
|
125
|
+
only a sanitized report identifying package versions, source/adapter SHA, indexing/document
|
|
126
|
+
scope, phase timings, full validation/publication, unchanged reuse and query coverage.
|
|
127
|
+
|
|
128
|
+
For A1, choose one actual upstream-to-downstream queue or stored-data change and record how the
|
|
129
|
+
graph witnesses the handoff, each side's obligations and the associated implementations. Note
|
|
130
|
+
whether a relationship came from prose, an explicit mapping, code or an observed trace. For A2,
|
|
131
|
+
retain the initial request, follow-up choices and all truncation/continuation states. For A3,
|
|
132
|
+
record the expected service/client projects and which were indexed, reached or missing. Have a
|
|
133
|
+
human assess business usefulness; an automated pass here is not a replacement.
|
|
134
|
+
|
|
135
|
+
## Boundary with 2.0
|
|
136
|
+
|
|
137
|
+
The [2.0 plan](WEFTLET-2.0-PLAN.md) still owns bulk code-derived documentation, durable approval
|
|
138
|
+
workflows, cross-source reconciliation management, source-document backfill, the companion
|
|
139
|
+
website, hosted AI/billing and unrelated source adapters. This baseline concerns connecting and
|
|
140
|
+
exploring local evidence accurately. No service, provider billing, new dependency, source adapter,
|
|
141
|
+
automatic write-back, package publication or product-policy change is introduced by this assessment.
|
package/docs/RELEASE-1.0-PLAN.md
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
# Consumer hardening and the 1.0 release plan
|
|
2
2
|
|
|
3
|
-
Status:
|
|
3
|
+
Status: original T01–T10 engineering work complete; 0.6.0 candidate publication verified on 2026-10-28.
|
|
4
|
+
The maintainer has requested additional [business-context baseline work](PRE-1.0-BASELINE.md)
|
|
5
|
+
before official 1.0: precise exploration, symbol-level implementation links, cross-boundary
|
|
6
|
+
obligations, monorepo coverage and a measured Graphify/SCIP decision. Its A1–A3 public checks
|
|
7
|
+
pass within recorded limits; B1 query mechanisms are implemented for the next candidate, while
|
|
8
|
+
B2's measured decision retains SCIP. B3a explicit bindings and B3b's deterministic gap assessment
|
|
9
|
+
are complete; B3c static calls, B4a explicit obligations and B4b selected numeric comparison are
|
|
10
|
+
implemented, along with B5's saved TypeScript/package coverage. Inference decisions and B6
|
|
11
|
+
remain open. Both npm packages remain available for
|
|
12
|
+
TradePilot acceptance while this additional scope is assessed. The maintainer requested the
|
|
13
|
+
next live test after a new candidate; [the implementation queue](1.0-WORK-QUEUE.md) tracks
|
|
14
|
+
the intervening B1–B6 work.
|
|
4
15
|
**T08's upstream deterministic physical-file fix has shipped; the maintainer reports the consumer
|
|
5
16
|
updated and working on 2026-10-27. Detailed full hydration/repeat evidence remains pending.** T04 was completed before
|
|
6
17
|
the T08 fix as requested.
|
|
@@ -12,20 +23,27 @@ The consumer's approved ten-minute retry has not run; that outcome remains separ
|
|
|
12
23
|
The original report concerned `@weftlet/toolkit@0.2.0`. T01's upstream document-identity patch
|
|
13
24
|
shipped in 0.2.1; T02 and T05's focused cold-validation optimization shipped in 0.3.0.
|
|
14
25
|
T03 operational cache reuse, T04 semantic failure diagnostics and T08's public core file factory
|
|
15
|
-
shipped in 0.4.0. T09 and T05a shipped in 0.5.0. T06
|
|
16
|
-
|
|
26
|
+
shipped in 0.4.0. T09 and T05a shipped in 0.5.0. T06, T07 and T10 shipped in 0.6.0.
|
|
27
|
+
T07a prospective coverage is implemented separately from hydration;
|
|
17
28
|
T07b classification and deterministic document evidence merged in PR 42 after local/hosted checks
|
|
18
29
|
and independent review. T07c hydration/cache integration merged in PR 44 with local and hosted checks passed;
|
|
19
30
|
T05's remaining engineering evaluation is recorded in
|
|
20
31
|
[ADR 027](ADR-027-validation-closeout.md), retaining full direct validation after measurements.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
32
|
+
The reviewed 0.6.0 candidate is published with verified registry archives, provenance and tags.
|
|
33
|
+
Validate it in TradePilot, address any acceptance blockers and the newly requested baseline
|
|
34
|
+
tasks, then review official 1.0. Consumer acceptance and the additional baseline are not closed
|
|
35
|
+
by completion of the original engineering task list.
|
|
24
36
|
|
|
25
37
|
This is the near-term release task list. The [Weftlet 2.0 product plan](WEFTLET-2.0-PLAN.md)
|
|
26
38
|
remains a separate future direction for generation, approvals, a companion website and hosted
|
|
27
39
|
AI. None of those platform features is a dependency of the fixes here.
|
|
28
40
|
|
|
41
|
+
The subsequent consumer filename blocker shipped in **0.6.1** on 2026-10-28: bounded physical
|
|
42
|
+
artifact/temp names, unchanged full logical identities/provenance, legacy reads and the requested
|
|
43
|
+
Windows traversal → repeat → clean regression. Registry archives, provenance, tags and a fresh
|
|
44
|
+
packaged CLI sequence are verified in [validation](VALIDATION.md). Use this patch for the next
|
|
45
|
+
consumer rerun; B1–B6 and actual product acceptance remain open.
|
|
46
|
+
|
|
29
47
|
## Reported evidence and boundaries
|
|
30
48
|
|
|
31
49
|
The consumer reported a cold extraction in which two source documents referred to the same
|
|
@@ -47,7 +65,7 @@ integration. Consumer acceptance is reported separately from upstream determinis
|
|
|
47
65
|
|
|
48
66
|
| ID | Task | Priority/status | Dependencies and release boundary |
|
|
49
67
|
| --- | --- | --- | --- |
|
|
50
|
-
| **T10** | Correct implementation coverage for returned code relationships | **
|
|
68
|
+
| **T10** | Correct implementation coverage for returned code relationships | **Shipped in 0.6.0; consumer acceptance pending** | Separate evidence counts from display groups; preserve facts, authority, ranking and saved snapshots; scope gaps to returned page |
|
|
51
69
|
| **T09** | Accept the approved ten-minute extraction timeout | **Shipped in 0.5.0; consumer ten-minute retry unrun** | Raise only the config ceiling to 600000; preserve defaults/cache/retry behavior; consumer retry has not run |
|
|
52
70
|
| **T08** | Canonical physical-file kinds and public adapter factory | **Shipped in 0.4.0; consumer reported working; detailed acceptance pending** | Public core factory and neutral producers agree; record consumer commit, adapter tests and full hydration/repeat evidence |
|
|
53
71
|
| **T01** | Coherent repository-document identity and kind | **Upstream patch shipped in 0.2.1; consumer acceptance pending** | SHACL and assertions preserved; genuine consumer re-run is still required |
|
|
@@ -55,8 +73,8 @@ integration. Consumer acceptance is reported separately from upstream determinis
|
|
|
55
73
|
| **T03** | Artifact reuse across operational configuration changes | Shipped in 0.4.0 | Built-in Codex user artifacts share five operational changes; custom providers remain conservative; exact legacy recovery without model calls |
|
|
56
74
|
| **T04** | Actionable, privacy-safe timeout diagnostics | Shipped in 0.4.0 | Safe source IDs, settled counts, failure classification and T02/T03 recovery; no extraction/cache identity change |
|
|
57
75
|
| **T05** | Early identity checks and validation progress/profiling | **Cold fix shipped in 0.3.0; T05a in 0.5.0; engineering closeout evaluated in ADR 027** | Cold/repeat/edits, worker, reuse, incremental and Rust evaluated; retain full direct validation; private consumer acceptance required |
|
|
58
|
-
| **T06** | Packaged release-documentation consistency | **
|
|
59
|
-
| **T07** | Coverage-aware traversal from SOT/roadmap entry points | **
|
|
76
|
+
| **T06** | Packaged release-documentation consistency | **Shipped in 0.6.0** | Generated current sections, checked actual tarballs, historical records preserved, fresh documented installation commands |
|
|
77
|
+
| **T07** | Coverage-aware traversal from SOT/roadmap entry points | **All three increments shipped in 0.6.0; consumer acceptance pending** | Committed closure, source roles/ownership, validation separation and draft invalidation implemented and published |
|
|
60
78
|
|
|
61
79
|
T02 and the focused T05 fix shipped in 0.3.0; T03, T04 and T08 shipped in
|
|
62
80
|
[0.4.0](https://github.com/jchewitt/weftlet/releases/tag/%40weftlet/toolkit%400.4.0), following
|
|
@@ -64,7 +82,7 @@ local/hosted checks, independent archive review and fresh packed/public-registry
|
|
|
64
82
|
T09 timeout support and T05a identity preflight/phase timing shipped in
|
|
65
83
|
[0.5.0](https://github.com/jchewitt/weftlet/releases/tag/%40weftlet/toolkit%400.5.0).
|
|
66
84
|
Source, registry integrity, provenance and release tags are recorded in [validation](VALIDATION.md).
|
|
67
|
-
T05 closeout measurements and decisions are recorded in ADR 027; T06 and T07
|
|
85
|
+
T05 closeout measurements and decisions are recorded in ADR 027; T06 and T07 shipped in the 0.6.0 candidate.
|
|
68
86
|
The consumer must migrate its framework adapter to the public core factory, then complete full
|
|
69
87
|
hydration and repeat reuse; upstream fixtures do not establish that result.
|
|
70
88
|
|
|
@@ -97,8 +115,8 @@ avoiding forced re-extraction. Follow [provider limits and reuse](PROVIDERS.md#l
|
|
|
97
115
|
Boundary, provider propagation, cancellation, cache reuse and packed/public-registry consumer checks passed;
|
|
98
116
|
release evidence is in [validation](VALIDATION.md). The consumer's approved ten-minute retry
|
|
99
117
|
has **not run**. No ten-minute wall-clock execution, paid/model call or private acceptance is
|
|
100
|
-
claimed by these deterministic upstream checks. T06/T07
|
|
101
|
-
|
|
118
|
+
claimed by these deterministic upstream checks. T06/T07 shipped in 0.6.0;
|
|
119
|
+
T05 engineering evaluation is recorded separately in ADR 027.
|
|
102
120
|
|
|
103
121
|
## T08 — Resolve deterministic physical-file kind conflicts
|
|
104
122
|
|
|
@@ -330,12 +348,12 @@ Consumer performance acceptance remains required; public fixtures do not silentl
|
|
|
330
348
|
|
|
331
349
|
## T06 — Keep packaged documentation consistent with the release
|
|
332
350
|
|
|
333
|
-
|
|
351
|
+
Shipped in 0.6.0, with [ADR 022](ADR-022-release-documentation.md) defining the checked
|
|
334
352
|
scope. Changesets regenerates current-version sections in both READMEs and the release guide.
|
|
335
353
|
The dependency-free checker verifies source instructions and both actual tarballs before
|
|
336
354
|
publication; the fresh-consumer smoke exercises the checked pinned commands and archive pair
|
|
337
355
|
with an isolated npm/npx cache. Historical records and feature-introduction versions stay intact.
|
|
338
|
-
Source validation
|
|
356
|
+
Source and publication validation are recorded in [validation](VALIDATION.md).
|
|
339
357
|
|
|
340
358
|
The original consumer installed 0.2.0 while its README still named 0.1.2 and some archive examples
|
|
341
359
|
used 0.1.1. Release 0.2.1 removed README version pins. T06 adds automation and replaces the release
|
|
@@ -384,7 +402,7 @@ command. Entry points, document roots and read limits are operation arguments, w
|
|
|
384
402
|
semantic budgets used only for comparison. No configuration/cache identity or hydration selection
|
|
385
403
|
is changed. [PR 38](https://github.com/jchewitt/weftlet/pull/38) merged T07a with hosted Ubuntu
|
|
386
404
|
and native Windows checks; exact source validation is recorded in [validation](VALIDATION.md).
|
|
387
|
-
|
|
405
|
+
All three increments are now published in 0.6.0; registry verification is recorded separately in [validation](VALIDATION.md).
|
|
388
406
|
|
|
389
407
|
[ADR 025](ADR-025-document-classification.md) records T07b's shared classification contract
|
|
390
408
|
and standalone deterministic document-evidence API. `documents plan --document-policy <json-file>`
|
|
@@ -418,6 +436,10 @@ Acceptance:
|
|
|
418
436
|
|
|
419
437
|
## Official 1.0 acceptance
|
|
420
438
|
|
|
439
|
+
Also review the [A1–A3 assessment and B1–B6 task list](PRE-1.0-BASELINE.md), added after the
|
|
440
|
+
0.6.0 candidate was published. The original list below remains necessary; a successful consumer
|
|
441
|
+
hydration alone does not close the requested business-context and exploration improvements.
|
|
442
|
+
|
|
421
443
|
With T01's upstream patch published, work through T02–T07 in bounded increments and record implementation
|
|
422
444
|
PRs and validation evidence here or in the linked validation record. Review the exact 1.0 scope
|
|
423
445
|
against completed evidence; any deferral needs an explicit maintainer decision and must remain
|
package/docs/RELEASING.md
CHANGED
|
@@ -202,14 +202,14 @@ Verify the matching public version in a fresh disposable project after publicati
|
|
|
202
202
|
|
|
203
203
|
```sh
|
|
204
204
|
npm init -y
|
|
205
|
-
npx --yes @weftlet/toolkit@0.
|
|
206
|
-
npx --yes @weftlet/toolkit@0.
|
|
205
|
+
npx --yes @weftlet/toolkit@0.7.0 init --yes
|
|
206
|
+
npx --yes @weftlet/toolkit@0.7.0 config validate
|
|
207
207
|
```
|
|
208
208
|
|
|
209
209
|
For local installation, use both prepared archives from the same reviewed release:
|
|
210
210
|
|
|
211
211
|
```sh
|
|
212
|
-
npm install --save-dev "/path/to/weftlet/.release/weftlet-core-0.
|
|
212
|
+
npm install --save-dev "/path/to/weftlet/.release/weftlet-core-0.7.0.tgz" "/path/to/weftlet/.release/weftlet-toolkit-0.7.0.tgz"
|
|
213
213
|
```
|
|
214
214
|
<!-- weftlet:release:end -->
|
|
215
215
|
|