{"schema_version":1,"workflow_uuid":"0f62d8ba-8438-11f1-9bc6-00163e2b0d79","workflow_title":"pyinfra — Automate Infrastructure with Python","page_url":"https://tokrepo.com/en/workflows/asset-0f62d8ba","raw_url":"https://tokrepo.com/raw/asset-0f62d8ba","metadata_url":"https://tokrepo.com/metadata/asset-0f62d8ba.json","install_plan_url":"https://api.tokrepo.com/api/v1/tokenboard/workflows/install-plan?uuid=0f62d8ba-8438-11f1-9bc6-00163e2b0d79&target=codex","recommended_install":{"schema_version":1,"status":"direct","policy":"allow","install_mode":"single","target":"codex","command":"npx -y tokrepo@latest install 0f62d8ba-8438-11f1-9bc6-00163e2b0d79 --target codex","dry_run_command":"npx -y tokrepo@latest install 0f62d8ba-8438-11f1-9bc6-00163e2b0d79 --target codex --dry-run --json","runtime_commands":{"codex":"npx -y tokrepo@latest install 0f62d8ba-8438-11f1-9bc6-00163e2b0d79 --target codex","gemini":"npx -y tokrepo@latest install 0f62d8ba-8438-11f1-9bc6-00163e2b0d79 --target gemini","project":"npx -y tokrepo@latest install 0f62d8ba-8438-11f1-9bc6-00163e2b0d79"},"prompt":"Install and make this TokRepo asset usable: \"pyinfra — Automate Infrastructure with Python\".\n\nPage: https://tokrepo.com/en/workflows/asset-0f62d8ba\nUUID: 0f62d8ba-8438-11f1-9bc6-00163e2b0d79\nTarget adapter: codex\nPolicy/mode: allow / single\n\nRead these machine-facing entry points first:\n- metadata: https://tokrepo.com/metadata/asset-0f62d8ba.json\n- install contract: https://tokrepo.com/install-contract/asset-0f62d8ba.json\n- install plan: https://api.tokrepo.com/api/v1/tokenboard/workflows/install-plan?uuid=0f62d8ba-8438-11f1-9bc6-00163e2b0d79&target=codex\n- raw content: https://tokrepo.com/raw/asset-0f62d8ba\n\nCommands:\n- choose the current runtime; do not use unsupported CLI targets.\n- Codex: npx -y tokrepo@latest install 0f62d8ba-8438-11f1-9bc6-00163e2b0d79 --target codex\n- Gemini CLI: npx -y tokrepo@latest install 0f62d8ba-8438-11f1-9bc6-00163e2b0d79 --target gemini\n- Claude Code / project agent: run npx -y tokrepo@latest install 0f62d8ba-8438-11f1-9bc6-00163e2b0d79 from the project root; add `--dry-run --json` first to inspect the plan.\n- add `--dry-run --json` to the chosen command first; after the plan allows it, run the chosen command.\n\nExecution rules:\n1. Run the dry-run command first to inspect the plan and risks.\n2. Run the install command after the plan allows it.\n3. Run the post_verify checks from the install plan.\n\nReport back with changed files, verification result, and how to use the asset next.","next_steps":["Run the dry-run command first to inspect the plan and risks.","Run the install command after the plan allows it.","Run the post_verify checks from the install plan."],"success_check":["The asset is installed into the target agent or project location.","The agent can load the entrypoint and explain how to use it."]},"agent_metadata":{"asset_kind":"skill","target_tools":["claude_code","codex","gemini_cli"],"install_mode":"single","entrypoint":"pyinfra","risk_profile":{"executes_code":false,"modifies_global_config":false,"requires_secrets":[],"uses_absolute_paths":false,"network_access":false},"dependencies":{"npm":[],"pip":["pyinfra"],"brew":[],"system":[]},"content_hash":"faee9a06a742771b5fdd10b8811ebe0b93a3994e7669c80f43a64000b7515366","verification":{"commands":[],"expected_files":["pyinfra"]},"inferred":true},"agent_fit":{"target":"codex","score":98,"status":"native","policy":"allow","why":["target_tools includes codex","asset_kind skill","install_mode single","markdown-only","policy allow","safe markdown-only Codex install","trust established"],"asset_kind":"skill","install_mode":"single"},"trust":{"author_trust_level":"established","verified_publisher":false,"asset_signed_hash":"faee9a06a742771b5fdd10b8811ebe0b93a3994e7669c80f43a64000b7515366","signature_status":"hash_only","install_count":0,"report_count":0,"dangerous_capability_badges":[],"review_status":"unreviewed","signals":["author has published assets","content hash available","no dangerous capability badges"]},"provenance":{"owner_uuid":"8a911193-3180-11f1-9bc6-00163e2b0d79","owner_name":"AI Open Source","source_url":"https://tokrepo.com/en/workflows/asset-0f62d8ba","content_hash":"faee9a06a742771b5fdd10b8811ebe0b93a3994e7669c80f43a64000b7515366","visibility":1,"created_at":"2026-07-20 20:39:33","updated_at":"2026-07-21 19:07:12"},"target_adapter":{"target":"codex","adapter":"skill-directory","root":"~/.codex/skills","entrypoint":"SKILL.md","manifest_path":"~/.codex/tokrepo/install-manifest.json","staging_root":"~/.codex/tokrepo/staged/0f62d8ba-8438-11f1-9bc6-00163e2b0d79","install_modes":["single","bundle","split","stage_only"],"activates_files":true},"install_plan":{"schema_version":2,"target":"codex","asset_uuid":"0f62d8ba-8438-11f1-9bc6-00163e2b0d79","asset_title":"pyinfra — Automate Infrastructure with Python","source_url":"https://tokrepo.com/en/workflows/asset-0f62d8ba","install_mode":"single","entrypoint":"pyinfra","preconditions":[{"type":"target_supported","status":"pass","message":"codex install target is supported"},{"type":"install_root","status":"pass","message":"~/.codex/skills for activated assets; ~/.codex/tokrepo/staged/0f62d8ba-8438-11f1-9bc6-00163e2b0d79 for staged assets"},{"type":"target_tool_metadata","status":"pass","message":"metadata allows codex"},{"type":"content_hash","status":"pass","message":"asset metadata includes content_hash"},{"type":"trust_policy","status":"pass","message":"publisher trust level is established"},{"type":"policy_decision","status":"pass","message":"allow for 0f62d8ba-8438-11f1-9bc6-00163e2b0d79 (single)"}],"actions":[{"type":"write_file","path":"~/.codex/skills/tokrepo-asset-0f62d8ba/SKILL.md","source_name":"pyinfra","sha256":"153cd743899d662e5bca1949e6306765d2fcb240576b3cd6e9bb9c47460a4358","bytes":3811,"risk":{"executes_code":false,"modifies_global_config":false,"requires_secrets":[],"uses_absolute_paths":false,"network_access":false},"if_exists":"overwrite","entrypoint":true}],"policy_decision":{"decision":"allow","requires_confirmation":false,"reasons":["safe markdown-only Codex install"]},"requires_confirmation":false,"rollback":[{"type":"remove_file","path":"~/.codex/skills/tokrepo-asset-0f62d8ba/SKILL.md"}],"post_verify":[{"type":"file_sha256","path":"~/.codex/skills/tokrepo-asset-0f62d8ba/SKILL.md","sha256":"153cd743899d662e5bca1949e6306765d2fcb240576b3cd6e9bb9c47460a4358"}],"metadata":{"asset_kind":"skill","target_tools":["claude_code","codex","gemini_cli"],"install_mode":"single","entrypoint":"pyinfra","risk_profile":{"executes_code":false,"modifies_global_config":false,"requires_secrets":[],"uses_absolute_paths":false,"network_access":false},"dependencies":{"npm":[],"pip":["pyinfra"],"brew":[],"system":[]},"content_hash":"faee9a06a742771b5fdd10b8811ebe0b93a3994e7669c80f43a64000b7515366","verification":{"commands":[],"expected_files":["pyinfra"]},"inferred":true},"agent_fit":{"target":"codex","score":98,"status":"native","policy":"allow","why":["target_tools includes codex","asset_kind skill","install_mode single","markdown-only","policy allow","safe markdown-only Codex install","trust established"],"asset_kind":"skill","install_mode":"single"},"trust":{"author_trust_level":"established","verified_publisher":false,"asset_signed_hash":"faee9a06a742771b5fdd10b8811ebe0b93a3994e7669c80f43a64000b7515366","signature_status":"hash_only","install_count":0,"report_count":0,"dangerous_capability_badges":[],"review_status":"unreviewed","signals":["author has published assets","content hash available","no dangerous capability badges"]},"provenance":{"owner_uuid":"8a911193-3180-11f1-9bc6-00163e2b0d79","owner_name":"AI Open Source","source_url":"https://tokrepo.com/en/workflows/asset-0f62d8ba","content_hash":"faee9a06a742771b5fdd10b8811ebe0b93a3994e7669c80f43a64000b7515366","visibility":1,"created_at":"2026-07-20 20:39:33","updated_at":"2026-07-21 19:07:12"},"target_adapter":{"target":"codex","adapter":"skill-directory","root":"~/.codex/skills","entrypoint":"SKILL.md","manifest_path":"~/.codex/tokrepo/install-manifest.json","staging_root":"~/.codex/tokrepo/staged/0f62d8ba-8438-11f1-9bc6-00163e2b0d79","install_modes":["single","bundle","split","stage_only"],"activates_files":true},"evidence_bundle":{"acceptance_gate":{"recommended_action":"install_after_plan","rule":"Agents should only activate an asset after evidence_bundle.integrity, policy_compatibility, rollback, and post_verify have been inspected.","status":"pass"},"asset_title":"pyinfra — Automate Infrastructure with Python","asset_uuid":"0f62d8ba-8438-11f1-9bc6-00163e2b0d79","eval_evidence":["https://tokrepo.com/evals/install-safety.json","https://tokrepo.com/evals/trust-evidence-coverage.json","https://tokrepo.com/evals/handoff-quality.json"],"generated_at":"2026-07-21T11:07:13Z","integrity":{"content_hash":"be43048914ac52eb60de66f264c3876c3da1f75f8e2d65643df42f27e13bf6eb","declared_content_hash":"faee9a06a742771b5fdd10b8811ebe0b93a3994e7669c80f43a64000b7515366","file_count":1,"hash_algorithm":"sha256","install_plan_hash":"a84a951db39fcc14d4b60cddf863d757b6cde41b699f7148a00895ecfc874989"},"policy_compatibility":{"permission_envelope":{"destructive":false,"executes_code":false,"file_count":1,"filesystem_write":["~/.codex/skills"],"global_config_write":false,"network":false,"requires_secrets":[],"uses_absolute_paths":false},"policy_decision":{"decision":"allow","requires_confirmation":false,"reasons":["safe markdown-only Codex install"]},"requires_confirmation":false,"target":"codex","trust_score_v2":{"recommended_action":"install_after_plan","status":"trusted","trust_score":82}},"provenance":{"asset_kind":"skill","asset_title":"pyinfra — Automate Infrastructure with Python","asset_uuid":"0f62d8ba-8438-11f1-9bc6-00163e2b0d79","computed_bundle_hash":"be43048914ac52eb60de66f264c3876c3da1f75f8e2d65643df42f27e13bf6eb","content_hash":"faee9a06a742771b5fdd10b8811ebe0b93a3994e7669c80f43a64000b7515366","created_at":"2026-07-20 20:39:33","generated_at":"2026-07-21T11:07:13Z","install_plan_hash":"a84a951db39fcc14d4b60cddf863d757b6cde41b699f7148a00895ecfc874989","owner_name":"AI Open Source","owner_uuid":"8a911193-3180-11f1-9bc6-00163e2b0d79","parent_uuid":"","schema_version":2,"source":"tokrepo_asset","source_url":"https://tokrepo.com/en/workflows/asset-0f62d8ba","updated_at":"2026-07-21 19:07:12","visibility":1},"sbom":{"asset_kind":"skill","asset_title":"pyinfra — Automate Infrastructure with Python","asset_uuid":"0f62d8ba-8438-11f1-9bc6-00163e2b0d79","capability_flags":{"destructive":false,"executes_code":false,"modifies_global_config":false,"network_access":false,"requires_secrets":[]},"content_hash":"be43048914ac52eb60de66f264c3876c3da1f75f8e2d65643df42f27e13bf6eb","dependencies":{"brew":[],"mcp":[],"npm":[],"pip":["pyinfra"],"system":[]},"files":[{"bytes":3811,"path":"~/.codex/skills/tokrepo-asset-0f62d8ba/SKILL.md","role":"entrypoint","sha256":"153cd743899d662e5bca1949e6306765d2fcb240576b3cd6e9bb9c47460a4358","source_name":"pyinfra"}],"format":"SBOM-lite","install_mode":"single","schema_version":1,"target":"codex"},"schema":"https://tokrepo.com/schemas/agent-evidence-bundle.schema.json","schema_version":1,"schemas":{"asset_verification":"https://tokrepo.com/schemas/asset-verification.schema.json","evidence_bundle":"https://tokrepo.com/schemas/agent-evidence-bundle.schema.json","install_plan":"https://tokrepo.com/schemas/install-plan.schema.json","provenance":"https://tokrepo.com/schemas/provenance.schema.json","sbom":"https://tokrepo.com/schemas/agent-evidence-bundle.schema.json#/properties/sbom"},"signature_evidence":{"content_hash":"be43048914ac52eb60de66f264c3876c3da1f75f8e2d65643df42f27e13bf6eb","hash_algorithm":"sha256","install_plan_hash":"a84a951db39fcc14d4b60cddf863d757b6cde41b699f7148a00895ecfc874989","schema_version":1,"signed_hash":"faee9a06a742771b5fdd10b8811ebe0b93a3994e7669c80f43a64000b7515366","status":"hash_only","verification_notes":["hash_only evidence proves content integrity but not publisher identity unless an external signature verifies it"]},"source_url":"https://tokrepo.com/en/workflows/asset-0f62d8ba","target":"codex"},"sbom":{"asset_kind":"skill","asset_title":"pyinfra — Automate Infrastructure with Python","asset_uuid":"0f62d8ba-8438-11f1-9bc6-00163e2b0d79","capability_flags":{"destructive":false,"executes_code":false,"modifies_global_config":false,"network_access":false,"requires_secrets":[]},"content_hash":"be43048914ac52eb60de66f264c3876c3da1f75f8e2d65643df42f27e13bf6eb","dependencies":{"brew":[],"mcp":[],"npm":[],"pip":["pyinfra"],"system":[]},"files":[{"bytes":3811,"path":"~/.codex/skills/tokrepo-asset-0f62d8ba/SKILL.md","role":"entrypoint","sha256":"153cd743899d662e5bca1949e6306765d2fcb240576b3cd6e9bb9c47460a4358","source_name":"pyinfra"}],"format":"SBOM-lite","install_mode":"single","schema_version":1,"target":"codex"},"signature_evidence":{"content_hash":"be43048914ac52eb60de66f264c3876c3da1f75f8e2d65643df42f27e13bf6eb","hash_algorithm":"sha256","install_plan_hash":"a84a951db39fcc14d4b60cddf863d757b6cde41b699f7148a00895ecfc874989","schema_version":1,"signed_hash":"faee9a06a742771b5fdd10b8811ebe0b93a3994e7669c80f43a64000b7515366","status":"hash_only","verification_notes":["hash_only evidence proves content integrity but not publisher identity unless an external signature verifies it"]},"provenance_v2":{"asset_kind":"skill","asset_title":"pyinfra — Automate Infrastructure with Python","asset_uuid":"0f62d8ba-8438-11f1-9bc6-00163e2b0d79","computed_bundle_hash":"be43048914ac52eb60de66f264c3876c3da1f75f8e2d65643df42f27e13bf6eb","content_hash":"faee9a06a742771b5fdd10b8811ebe0b93a3994e7669c80f43a64000b7515366","created_at":"2026-07-20 20:39:33","generated_at":"2026-07-21T11:07:13Z","install_plan_hash":"a84a951db39fcc14d4b60cddf863d757b6cde41b699f7148a00895ecfc874989","owner_name":"AI Open Source","owner_uuid":"8a911193-3180-11f1-9bc6-00163e2b0d79","parent_uuid":"","schema_version":2,"source":"tokrepo_asset","source_url":"https://tokrepo.com/en/workflows/asset-0f62d8ba","updated_at":"2026-07-21 19:07:12","visibility":1},"transitive_dependencies":null}}