github Python re-analysis due

dengyier/OpenWorkProof

github

Open protocol for AI agent work contracts and verifiable execution — authorization, evidence, and acceptance for multi-agent systems

maintainer
dengyier
license
Apache-2.0
first seen
2026-08-05
last seen
2026-08-30
releases · 30d
4
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 27 tools
transport stdio · http verified reported listed in the official MCP registry counts 27 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • owp_analyze_repo
  • owp_build_delivery_package
  • owp_compute_digest
  • owp_compute_key_id
  • owp_control_observation_validate
  • owp_explain_binding_decision
  • owp_generate_keypair
  • owp_get_binding_status
  • owp_get_decision
  • owp_get_schema
  • owp_get_schema_digest
  • owp_get_settlement_readiness
  • owp_integrity_observation_validate
  • owp_list_domains
  • owp_repo_read
  • owp_run_tests
  • owp_run_verification
  • owp_scope_compare
  • owp_scope_validate
  • owp_sign_payload
  • owp_status
  • owp_validate_action_binding_manifest
  • owp_validate_judgment_commitment
  • owp_validate_profile
  • owp_verify_nested_claim
  • owp_verify_signature
  • owp_verify_work_order
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 04e62d5 · analyzer v33 · 2w ago

danger signals2

code evidence vv1.2.0 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 133

filesystem 78

  • fs (weak) dengyier-OpenWorkProof-04e62d5/agentteams/scripts/run_skills_demo.py :19 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/docs/check_delivery_materials.py :13 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/docs/competition/OpenWorkProof参赛方案/fill_template.py :2 import shutil
  • fs (weak) dengyier-OpenWorkProof-04e62d5/docs/delivery-signoff/generate_sha256sums.py :17 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/docs/delivery-signoff/sign_manifest.py :18 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/docs/delivery-signoff/verify_sha256sums.py :15 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/docs/delivery-signoff/verify_signature.py :16 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/acceptance.py :15 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/binding_transactions.py :8 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/cli.py :29 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/delivery_package.py :9 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/evidence.py :13 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/execution_adapter.py :28 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/external_acceptor.py :25 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_server.py :15 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :47 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/policy.py :11 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/repo_pipeline/__init__.py :26 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/repo_pipeline/models.py :12 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/repo_pipeline/reader.py :11 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/repo_pipeline/sources.py :18 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/repo_pipeline/traversal.py :12 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/repo_tools.py :13 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/runtime_context.py :11 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/schema_registry.py :14 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/scope.py :10 import shutil
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/services.py :7 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/settlement.py :7 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/team_network_client.py :38 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/trusted_helper.py :8 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/verification.py :10 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/supply-chain/images/convert_docker_archive.py :35 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/supply-chain/images/execution/run_tests_runner.py :13 from pathlib import Path
  • fs dengyier-OpenWorkProof-04e62d5/supply-chain/images/prepare_context.py :9 from pathlib import Path, PurePosixPath
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/evidence-bundles/verify_evidence_bundle.py :25 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_acceptance.py :1824 from pathlib import Path # noqa: PLC0415
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_binding_demo_v04.py :12 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_binding_manifest_transactions_v04.py :11 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_binding_schema_v04.py :8 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_candidate_supplychain_integration.py :14 from pathlib import Path, PurePosixPath
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_cli_transport.py :6 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_convert_docker_archive.py :8 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m1.py :12 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m2.py :23 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m3_dify.py :40 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_package_v02.py :7 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_package_v03.py :5 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_package_v05.py :5 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_documentation_boundaries.py :9 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_execution_adapter.py :6 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_export_evidence_bundles.py :24 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_image_supply_chain.py :8 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_judgment_transactions_v04.py :9 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_mcp_server.py :11 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_package.py :3 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_prepare_image_context.py :7 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_receipt_chain.py :14 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_replay.py :2115 monkeypatch.setattr("pathlib.Path.resolve", forbid_resolution_substitute)
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_repo_pipeline.py :7 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_repo_read_transaction.py :6 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_run_tests_runner.py :11 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_sandbox.py :14 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_schema_registry.py :10 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_scope_adversarial_v03.py :5 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_scope_building_v03.py :6 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_scope_demo_v03.py :5 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_scope_interfaces_v03.py :5 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_scope_transactions_v03.py :7 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_trusted_helper.py :12 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_v02_adversarial.py :7 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_v02_bundles.py :6 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_v02_interfaces.py :4 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_integrity_adapters_v05.py :7 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_integrity_demo_v05.py :16 import shutil
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_integrity_interfaces_v05.py :6 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_integrity_transactions_v05.py :7 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_transactions_v02.py :7 from pathlib import Path
  • fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_transactions_v03.py :8 from pathlib import Path

shell / exec 26

  • shell (weak) dengyier-OpenWorkProof-04e62d5/docs/delivery-signoff/generate_sha256sums.py :16 import subprocess
  • shell dengyier-OpenWorkProof-04e62d5/src/openworkproof/agentteams_controller_client.py :28 import subprocess
  • shell dengyier-OpenWorkProof-04e62d5/src/openworkproof/repo_pipeline/sources.py :21 import subprocess
  • shell dengyier-OpenWorkProof-04e62d5/src/openworkproof/repo_tools.py :20 import subprocess
  • shell dengyier-OpenWorkProof-04e62d5/src/openworkproof/scope.py :11 import subprocess
  • shell dengyier-OpenWorkProof-04e62d5/supply-chain/images/execution/run_tests_runner.py :18 import subprocess
  • shell dengyier-OpenWorkProof-04e62d5/supply-chain/images/prepare_context.py :13 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_binding_demo_v04.py :119 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_candidate_supplychain_integration.py :18 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m1.py :14 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m2.py :25 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m3_dify.py :42 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_export_evidence_bundles.py :950 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_image_supply_chain.py :11 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_mcp_server.py :14 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_prepare_image_context.py :10 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_replay.py :11 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_run_tests_runner.py :17 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_sandbox.py :17 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_schema_registry.py :12 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_scope_building_v03.py :4 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_scope_demo_v03.py :7 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_trusted_helper.py :15 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_v02_interfaces.py :5 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_integrity_adapters_v05.py :6 import subprocess
  • shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_integrity_demo_v05.py :17 import subprocess

network 10

  • net dengyier-OpenWorkProof-04e62d5/src/openworkproof/agentteams_matrix_client.py :29 import urllib.error
  • net dengyier-OpenWorkProof-04e62d5/src/openworkproof/external_acceptor.py :26 import socket
  • net dengyier-OpenWorkProof-04e62d5/src/openworkproof/repo_pipeline/sources.py :23 from urllib.parse import urlparse
  • net dengyier-OpenWorkProof-04e62d5/src/openworkproof/team_network_client.py :39 import socket
  • net (weak) dengyier-OpenWorkProof-04e62d5/tests/test_agentteams_adapters.py :142 "openworkproof.agentteams_matrix_client.urllib.request.urlopen",
  • net (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m1.py :13 import socket
  • net (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m2.py :24 import socket
  • net (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m3_dify.py :41 import socket
  • net (weak) dengyier-OpenWorkProof-04e62d5/tests/test_team_network_client.py :6 import socket
  • net (weak) dengyier-OpenWorkProof-04e62d5/tests/test_trusted_helper.py :13 import socket

secrets 2

  • secrets dengyier-OpenWorkProof-04e62d5/src/openworkproof/team_network_client.py :130 token=os.environ.get("OWP_TEAM_TOKEN", ""),
  • secrets (weak) dengyier-OpenWorkProof-04e62d5/tests/test_sandbox.py :1183 "os.environ.get('OPENWORKPROOF_HOST_SECRET', 'missing'))"

database 26

  • db dengyier-OpenWorkProof-04e62d5/src/openworkproof/acceptance.py :17 import sqlite3
  • db dengyier-OpenWorkProof-04e62d5/src/openworkproof/binding_transactions.py :5 import sqlite3
  • db dengyier-OpenWorkProof-04e62d5/src/openworkproof/evidence.py :15 import sqlite3
  • db dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_server.py :18 import sqlite3
  • db dengyier-OpenWorkProof-04e62d5/src/openworkproof/settlement.py :8 import sqlite3
  • db dengyier-OpenWorkProof-04e62d5/src/openworkproof/verification.py :8 import sqlite3
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_acceptance.py :446 import sqlite3 # noqa: PLC0415
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_acceptance_v03.py :3 import sqlite3
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_acceptor_rejection.py :433 import sqlite3 as _sql # noqa: PLC0415
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_binding_gateway_v04.py :9 import sqlite3
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_binding_manifest_transactions_v04.py :6 import sqlite3
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m2.py :820 import sqlite3 as _sql
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m3_dify.py :840 import sqlite3 as _sql
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_export_evidence_bundles.py :22 import sqlite3
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_independent_recomposition.py :184 import sqlite3 as _sql
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_judgment_transactions_v04.py :4 import sqlite3
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_mcp_server.py :13 import sqlite3
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_receipt_chain.py :15 import sqlite3
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_repo_read_transaction.py :188 import sqlite3 as _sql
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_scope_adversarial_v03.py :4 import sqlite3
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_scope_transactions_v03.py :5 import sqlite3
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_settlement_readiness.py :4 import sqlite3
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_integrity_adversarial_v05.py :5 import sqlite3
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_integrity_transactions_v05.py :5 import sqlite3
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_transactions_v02.py :5 import sqlite3
  • db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_transactions_v03.py :6 import sqlite3

tool registrations 27

  • owp_generate_keypair dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :177
  • owp_compute_key_id dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :209
  • owp_sign_payload dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :223
  • owp_verify_signature dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :266
  • owp_compute_digest dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :307
  • owp_verify_work_order dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :348
  • owp_verify_nested_claim dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :377
  • owp_list_domains dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :430
  • owp_validate_profile dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :444
  • owp_integrity_observation_validate dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :454
  • owp_control_observation_validate dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :470
  • owp_scope_validate dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :486
  • owp_scope_compare dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :501
  • owp_status dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :524
  • owp_run_tests dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :538
  • owp_repo_read dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :550
  • owp_run_verification dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :561
  • owp_get_decision dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :590
  • owp_build_delivery_package dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :604
  • owp_get_settlement_readiness dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :623
  • owp_get_schema dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :649
  • owp_get_schema_digest dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :666
  • owp_analyze_repo dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :691
  • owp_validate_judgment_commitment dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :747
  • owp_validate_action_binding_manifest dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :766
  • owp_get_binding_status dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :781
  • owp_explain_binding_decision dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :790

declared dependencies 10

  • mcp@>=1.0
  • cryptography@>=43.0
  • jsonschema@>=4.20
  • pydantic@>=2.5
  • rfc8785@>=0.1.2
  • rich@>=13.0
  • typer@>=0.12
  • pip-tools@>=7.4
  • pytest@>=8.0
  • setuptools@>=68.0