You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
allow registered agent definitions to opt out of Data Machine's automatic default reconciliation through meta.datamachine_default_materialization=false
report opted-out definitions separately as definition_only without creating rows, access grants, directories, scaffolds, or reconciliation hooks
preserve explicit, idempotent exact-scope materialization and all existing default reconciliation behavior
Agents API already separates declarative registration from host-owned materialization. WP_Agent preserves generic meta, wp_materialize_agent_identity() validates the registered definition and constructs an exact WP_Agent_Identity_Scope, and WP_Agent_Identity_Store::materialize() owns idempotent persistence. It does not expose a default-materialization policy field or filter; its registration docs explicitly leave that decision to hosts.
This PR therefore does not change the generic Agents API dependency or add a parallel materialization path. It adds only a Data Machine consumer-owned reconciliation policy in existing definition metadata.
Contract
Definitions retain today's behavior by default. Only an explicit strict-false marker opts out:
Normal AgentRegistry::reconcile() reports that slug under definition_only before resolving a default owner or invoking the identity store. Explicit wp_materialize_agent_identity() calls continue through the registered Agents API definition and Data Machine identity store with the requested owner and instance key, including duplicate-key concurrency handling.
Runtime bundle/import reconciliation remains default-on for definitions without the marker and continues skipping marked definition-only defaults.
Compatibility
existing definitions and the default system agent remain default-materialized
existing created, existing, and skipped outcomes retain their meaning
reconciliation summaries add the definition_only outcome
no owner_resolver=0, post-reconciliation deletion, product-specific behavior, or generic-layer vendor vocabulary is introduced
Tests
php tests/agent-registry-materializer-smoke.php passes all 37 assertions
ℹ️ The test runner failed before producing structured results. See raw_output.stderr_tail / raw_output.stdout_tail for the underlying error (bootstrap failure, missing deps, DB connection, etc.).
ℹ️ To run specific tests: homeboy review test data-machine -- --filter=TestName
ℹ️ Auto-fix lint issues: homeboy refactor data-machine --from lint --write
ℹ️ Collect coverage: homeboy review test data-machine --coverage
ℹ️ Analyze failures: homeboy review test data-machine --analyze
ℹ️ Pass args to test runner: homeboy review test -- [args]
ℹ️ Full options: homeboy self docs commands/test
Deep dive: homeboy review test data-machine --changed-since 2cb96b7
Artifacts and drill-down
CI results artifact: homeboy-ci-results-data-machine-review-test-quality-Linux-node24 contains immediate command JSON for this action invocation.
Observation artifact: homeboy-observations-data-machine-review-test-quality-Linux-node24 contains exported Homeboy run history for deeper queries.
Drill-down: download the observation artifact, then run homeboy runs import <dir>, homeboy runs list, and homeboy runs findings <run-id>.
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
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
meta.datamachine_default_materialization=falsedefinition_onlywithout creating rows, access grants, directories, scaffolds, or reconciliation hooksCloses #3034
Existing Primitive Investigation
Agents API already separates declarative registration from host-owned materialization.
WP_Agentpreserves genericmeta,wp_materialize_agent_identity()validates the registered definition and constructs an exactWP_Agent_Identity_Scope, andWP_Agent_Identity_Store::materialize()owns idempotent persistence. It does not expose a default-materialization policy field or filter; its registration docs explicitly leave that decision to hosts.This PR therefore does not change the generic Agents API dependency or add a parallel materialization path. It adds only a Data Machine consumer-owned reconciliation policy in existing definition metadata.
Contract
Definitions retain today's behavior by default. Only an explicit strict-false marker opts out:
Normal
AgentRegistry::reconcile()reports that slug underdefinition_onlybefore resolving a default owner or invoking the identity store. Explicitwp_materialize_agent_identity()calls continue through the registered Agents API definition and Data Machine identity store with the requested owner and instance key, including duplicate-key concurrency handling.Runtime bundle/import reconciliation remains default-on for definitions without the marker and continues skipping marked definition-only defaults.
Compatibility
created,existing, andskippedoutcomes retain their meaningdefinition_onlyoutcomeowner_resolver=0, post-reconciliation deletion, product-specific behavior, or generic-layer vendor vocabulary is introducedTests
php tests/agent-registry-materializer-smoke.phppasses all 37 assertionsphp tests/runtime-agent-bundle-reconcile-smoke.phppassesphp tests/agent-prune-resurrection-smoke.phppasseshomeboy review lint data-machine --path . --placement local --changed-only --summarypasseshomeboy review audit data-machine --path . --placement local --profile pr --changed-since origin/main --json-summarypasses with no introduced findings