claude-dev-env 2.9.0 → 2.10.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/CLAUDE.md +1 -1
- package/_shared/pr-loop/CLAUDE.md +1 -1
- package/_shared/pr-loop/audit-contract.md +17 -6
- package/_shared/pr-loop/audit-reply-template.md +4 -4
- package/_shared/pr-loop/code-rules-gate.md +3 -5
- package/_shared/pr-loop/fix-protocol.md +2 -3
- package/_shared/pr-loop/gh-payloads.md +1 -1
- package/_shared/pr-loop/scripts/CLAUDE.md +1 -1
- package/_shared/pr-loop/scripts/README.md +1 -1
- package/_shared/pr-loop/scripts/code_rules_gate.py +2 -0
- package/_shared/pr-loop/scripts/code_rules_gate_parts/gate_running.py +16 -1
- package/_shared/pr-loop/scripts/code_rules_gate_parts/git_blob_readers.py +11 -5
- package/_shared/pr-loop/scripts/preflight.py +9 -4
- package/_shared/pr-loop/scripts/reviews_disabled.py +50 -22
- package/_shared/pr-loop/scripts/tests/conftest.py +20 -0
- package/_shared/pr-loop/scripts/tests/test_claude_permissions_common.py +6 -6
- package/_shared/pr-loop/scripts/tests/test_reviews_disabled.py +50 -6
- package/_shared/pr-loop/scripts/tests/test_revoke_project_claude_permissions.py +1 -1
- package/_shared/pr-loop/state-schema.md +5 -14
- package/agents/CLAUDE.md +2 -2
- package/agents/clean-coder.md +58 -548
- package/agents/code-quality-agent.md +10 -2
- package/agents/code-verifier.md +1 -1
- package/agents/test_agent_frontmatter.py +32 -40
- package/audit-rubrics/CLAUDE.md +2 -1
- package/audit-rubrics/audit-categories.json +704 -0
- package/audit-rubrics/prompts/category-i-concurrency.md +1 -1
- package/bin/CLAUDE.md +16 -5
- package/bin/ever-shipped-skills.mjs +2 -0
- package/bin/install-plan.mjs +402 -0
- package/bin/install-transaction.mjs +455 -0
- package/bin/install.mjs +593 -147
- package/bin/install.plan.test.mjs +194 -0
- package/bin/install.profile-root.test.mjs +154 -0
- package/bin/install.profiles.test.mjs +253 -0
- package/bin/install.settings-defaults.test.mjs +200 -0
- package/bin/install.transaction.test.mjs +400 -0
- package/bin/install.uninstall-transaction.test.mjs +418 -0
- package/bin/merge_managed_permissions.mjs +130 -0
- package/bin/resolve-install-root.mjs +181 -0
- package/bin/select-install-targets.mjs +401 -0
- package/commands/CLAUDE.md +0 -2
- package/docs/references/CLAUDE.md +1 -0
- package/docs/references/advisor-tool.md +1 -1
- package/docs/references/prose-style-enforcement.md +25 -0
- package/hooks/blocking/CLAUDE.md +6 -6
- package/hooks/blocking/_path_setup.py +9 -5
- package/hooks/blocking/code_rules_docstrings.py +124 -30
- package/hooks/blocking/code_rules_enforcer.py +161 -16
- package/hooks/blocking/code_rules_shared.py +40 -23
- package/hooks/blocking/config/CLAUDE.md +3 -5
- package/hooks/blocking/config/prose_style_enforcement_constants.py +38 -0
- package/hooks/blocking/config/test_prose_style_enforcement_constants.py +45 -0
- package/hooks/blocking/eli11_reply_enforcer.py +70 -113
- package/hooks/blocking/hedging_language_blocker.py +103 -20
- package/hooks/blocking/hook_prose_detector_consistency.py +6 -0
- package/hooks/blocking/intent_only_ending_blocker.py +6 -0
- package/hooks/blocking/plain_language_blocker.py +139 -20
- package/hooks/blocking/pre_tool_use_dispatcher.py +102 -20
- package/hooks/blocking/state_description_blocker.py +7 -1
- package/hooks/blocking/tdd_enforcer.py +8 -0
- package/hooks/blocking/test__path_setup.py +28 -0
- package/hooks/blocking/test_code_rules_enforcer_agent_home_tooling.py +99 -0
- package/hooks/blocking/test_code_rules_enforcer_docstring_args_span_scope.py +232 -10
- package/hooks/blocking/test_code_rules_enforcer_ephemeral.py +1 -1
- package/hooks/blocking/test_code_rules_enforcer_join_separator_magic.py +41 -0
- package/hooks/blocking/test_code_rules_enforcer_string_magic.py +98 -0
- package/hooks/blocking/test_eli11_reply_enforcer.py +98 -165
- package/hooks/blocking/test_hedging_language_blocker.py +120 -1
- package/hooks/blocking/test_hook_prose_detector_consistency.py +28 -8
- package/hooks/blocking/test_intent_only_ending_blocker.py +27 -2
- package/hooks/blocking/test_package_inventory_stale_blocker.py +11 -4
- package/hooks/blocking/test_plain_language_blocker.py +129 -19
- package/hooks/blocking/test_plain_language_blocker_allowlist.py +70 -26
- package/hooks/blocking/test_pre_tool_use_dispatcher.py +99 -26
- package/hooks/blocking/test_pre_tool_use_dispatcher_native.py +87 -50
- package/hooks/blocking/test_state_description_blocker.py +45 -2
- package/hooks/blocking/test_stop_dispatcher.py +11 -7
- package/hooks/blocking/test_volatile_path_in_post_blocker.py +12 -12
- package/hooks/blocking/volatile_path_in_post_blocker.py +2 -2
- package/hooks/hooks.json +15 -0
- package/hooks/hooks_constants/CLAUDE.md +14 -3
- package/hooks/hooks_constants/ask_user_question_shape.py +281 -0
- package/hooks/hooks_constants/code_rules_enforcer_constants.py +2 -1
- package/hooks/hooks_constants/eli11_reply_enforcer_constants.py +5 -12
- package/hooks/hooks_constants/hedging_uncertainty_constants.py +42 -0
- package/hooks/hooks_constants/issue_tracker_session_starter_constants.py +23 -0
- package/hooks/hooks_constants/orchestrator_auto_starter_constants.py +23 -0
- package/hooks/hooks_constants/piped_pytest_blocker_constants.py +4 -1
- package/hooks/hooks_constants/plain_language_blocker_constants.py +4 -1
- package/hooks/hooks_constants/pre_tool_use_dispatcher_constants.py +6 -0
- package/hooks/hooks_constants/project_paths_reader.py +31 -4
- package/hooks/hooks_constants/prose_matcher_precision_constants.py +40 -0
- package/hooks/hooks_constants/pytest_invocation.py +354 -0
- package/hooks/hooks_constants/session_start_injector.py +163 -0
- package/hooks/hooks_constants/session_start_injector_constants.py +46 -0
- package/hooks/hooks_constants/shell_command_pipeline.py +397 -0
- package/hooks/hooks_constants/shell_command_segments.py +5 -0
- package/hooks/hooks_constants/test_ask_user_question_shape.py +167 -0
- package/hooks/hooks_constants/test_project_paths_reader.py +29 -0
- package/hooks/hooks_constants/test_prose_metrics_parity.py +8 -0
- package/hooks/hooks_constants/test_pytest_invocation.py +130 -0
- package/hooks/hooks_constants/test_session_start_injector.py +168 -0
- package/hooks/hooks_constants/test_shell_command_pipeline.py +135 -0
- package/hooks/hooks_constants/volatile_path_in_post_blocker_constants.py +1 -1
- package/hooks/hooks_constants/working_style_prompt_constants.py +30 -0
- package/hooks/observability/CLAUDE.md +2 -0
- package/hooks/observability/prose_matcher_advisory.py +237 -0
- package/hooks/observability/test_prose_matcher_advisory.py +143 -0
- package/hooks/session/CLAUDE.md +9 -1
- package/hooks/session/_path_setup.py +13 -0
- package/hooks/session/issue_tracker_session_starter.py +135 -0
- package/hooks/session/orchestrator_auto_starter.py +100 -0
- package/hooks/session/test__path_setup.py +28 -0
- package/hooks/session/test_issue_tracker_session_starter.py +104 -0
- package/hooks/session/test_orchestrator_auto_starter.py +99 -0
- package/hooks/session/test_working_style_prompt.py +47 -0
- package/hooks/session/untracked_repo_detector.py +1 -24
- package/hooks/session/working_style_prompt.py +36 -0
- package/hooks/validators/_path_setup.py +19 -0
- package/hooks/validators/run_all_validators.py +8 -13
- package/installable-surfaces.manifest.json +21 -0
- package/output-styles/CLAUDE.md +1 -3
- package/package.json +4 -2
- package/rules/CLAUDE.md +1 -0
- package/rules/durable-post-artifacts.md +2 -2
- package/rules/eli11-replies.md +6 -1
- package/rules/hedging-claims.md +4 -2
- package/rules/long-horizon-autonomy.md +3 -1
- package/rules/opus5-communication-contract.md +45 -0
- package/rules/plain-language.md +2 -2
- package/rules/research-mode.md +1 -1
- package/scripts/CLAUDE.md +11 -0
- package/scripts/Sync-RepoMain.ps1 +215 -0
- package/scripts/active_capability_references.py +218 -0
- package/scripts/ci/windows-installer-lifecycle.ps1 +78 -0
- package/scripts/claude_chain_runner.py +394 -6
- package/scripts/claude_chain_usage.py +1 -1
- package/scripts/codex_compat_materializer.py +105 -85
- package/scripts/dev_env_scripts_constants/CLAUDE.md +2 -0
- package/scripts/dev_env_scripts_constants/active_capability_constants.py +46 -0
- package/scripts/dev_env_scripts_constants/claude_chain_constants.py +74 -0
- package/scripts/dev_env_scripts_constants/verify_installable_package_constants.py +116 -0
- package/scripts/profile-isolation-launchers/config/mcp-bundles.json +25 -0
- package/scripts/profile-isolation-launchers/config/profile-isolation-constants.mjs +60 -0
- package/scripts/profile-isolation-launchers/config/profiles.manifest.json +54 -0
- package/scripts/profile-isolation-launchers/config/shared-allowlist.json +64 -0
- package/scripts/profile-isolation-launchers/launcher-runtime.mjs +180 -0
- package/scripts/profile-isolation-launchers/lib/profile-manifest.mjs +288 -0
- package/scripts/profile-isolation-launchers/mcp-bundles.mjs +275 -0
- package/scripts/profile-isolation-launchers/profile-isolation-contract.test.mjs +221 -0
- package/scripts/profile-isolation-launchers/tests/launcher-runtime.test.mjs +108 -0
- package/scripts/profile-isolation-launchers/tests/mcp-bundles.test.mjs +147 -0
- package/scripts/profile-isolation-launchers/tests/shortcut-contract.test.ps1 +102 -0
- package/scripts/profile-isolation-launchers/tests/version-compatibility.test.mjs +210 -0
- package/scripts/profile-isolation-launchers/version-compatibility.mjs +299 -0
- package/scripts/profile-isolation-launchers/windows/shortcut-inventory.ps1 +127 -0
- package/scripts/profile-isolation-launchers/windows/shortcut-manifest.json +51 -0
- package/scripts/profile-isolation-launchers/windows/shortcut-reconcile.ps1 +77 -0
- package/scripts/spawn_grok_batch.py +3 -0
- package/scripts/test_active_capability_references.py +108 -0
- package/scripts/test_claude_chain_runner.py +414 -82
- package/scripts/test_claude_chain_usage.py +12 -12
- package/scripts/test_resolve_worker_spawn.py +2 -2
- package/scripts/test_verify_installable_package.py +208 -0
- package/scripts/tests/test_codex_compat_materializer.py +33 -0
- package/scripts/verify_installable_package.py +612 -0
- package/settings.json +10 -0
- package/skills/CLAUDE.md +2 -0
- package/skills/_shared/pr-loop/scripts/CLAUDE.md +1 -0
- package/skills/_shared/pr-loop/scripts/audit_category_schema.py +355 -0
- package/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/CLAUDE.md +1 -0
- package/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/audit_category_schema_constants.py +32 -0
- package/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/path_resolver_constants.py +7 -19
- package/skills/_shared/pr-loop/scripts/test_audit_category_schema.py +94 -0
- package/skills/_shared/pr-loop/scripts/test_build_audit_prompt.py +21 -0
- package/skills/autoconverge/reference/convergence.md +2 -1
- package/skills/autoconverge/reference/stop-conditions.md +5 -3
- package/skills/beat-sheet/SKILL.md +54 -0
- package/skills/beat-sheet/reference/visual-beats.md +29 -0
- package/skills/bugteam/CONSTRAINTS.md +4 -4
- package/skills/bugteam/EXAMPLES.md +1 -1
- package/skills/bugteam/reference/README.md +1 -1
- package/skills/e-code-review/SKILL.md +26 -5
- package/skills/e-code-review/reference/effort-evaluation.md +35 -0
- package/skills/e-code-review/reference/medium.md +15 -4
- package/skills/e-code-review/scripts/config/e_code_review_effort_constants/__init__.py +41 -0
- package/skills/e-code-review/scripts/config/e_code_review_effort_constants/effort_constants.py +40 -0
- package/skills/e-code-review/scripts/e_code_review_scripts_constants/finding_pipeline_constants.py +49 -0
- package/skills/e-code-review/scripts/effort_defaults_evidence.json +186 -0
- package/skills/e-code-review/scripts/effort_evaluation.py +362 -0
- package/skills/e-code-review/scripts/finding_pipeline.py +140 -0
- package/skills/e-code-review/scripts/fixtures/demanding.json +26 -0
- package/skills/e-code-review/scripts/fixtures/easy.json +14 -0
- package/skills/e-code-review/scripts/fixtures/medium.json +20 -0
- package/skills/e-code-review/scripts/grok_code_review.py +16 -7
- package/skills/e-code-review/scripts/test_effort_evaluation.py +180 -0
- package/skills/e-code-review/scripts/test_finding_pipeline.py +197 -0
- package/skills/e-code-review/scripts/test_grok_code_review.py +77 -0
- package/skills/plan-to-pr/scripts/create_packet.py +4 -4
- package/skills/plan-to-pr/scripts/load_skill_constants.py +41 -0
- package/skills/plan-to-pr/scripts/validate_packet.py +4 -4
- package/skills/plan-to-pr/scripts/validate_protocol.py +4 -1
- package/skills/plan-to-pr/scripts/validate_run.py +4 -1
- package/skills/pr-converge/scripts/check_convergence.py +21 -19
- package/skills/pr-converge/scripts/check_convergence_availability.py +50 -7
- package/skills/pr-converge/scripts/conftest.py +35 -0
- package/skills/pr-converge/scripts/test_check_convergence_availability.py +65 -0
- package/skills/pr-converge/scripts/test_check_convergence_codex.py +11 -1
- package/skills/pr-converge/scripts/test_check_convergence_contract.py +9 -2
- package/skills/pr-loop-cloud-transport/SKILL.md +1 -1
- package/skills/rebase/SKILL.md +15 -3
- package/skills/reviewer-gates/SKILL.md +2 -2
- package/skills/show/SKILL.md +51 -0
- package/skills/show/references/accessibility.md +7 -0
- package/skills/show/references/art.md +3 -0
- package/skills/show/references/charts.md +3 -0
- package/skills/show/references/core-design.md +14 -0
- package/skills/show/references/erds.md +3 -0
- package/skills/show/references/flowcharts.md +3 -0
- package/skills/show/references/host-and-html.md +3 -0
- package/skills/show/references/illustrative-diagrams.md +10 -0
- package/skills/show/references/interaction.md +3 -0
- package/skills/show/references/mockups.md +3 -0
- package/skills/show/references/quality-gates.md +7 -0
- package/skills/show/references/structural-diagrams.md +3 -0
- package/skills/show/references/subject-inventory.md +21 -0
- package/skills/show/references/svg-contract.md +22 -0
- package/skills/show/routing.yaml +30 -0
- package/skills/show/samples/pr1262-v2.svg +222 -0
- package/skills/show/scripts/README.md +6 -0
- package/skills/show/scripts/validate-artifact.py +91 -0
- package/skills/show/scripts/validate-package.py +18 -0
- package/skills/show/templates/html-widget.html +4 -0
- package/skills/show/templates/svg-base.svg +19 -0
- package/skills/show/tests/fixtures/css-var.svg +6 -0
- package/skills/show/tests/fixtures/dead-ref.svg +7 -0
- package/skills/show/tests/fixtures/filled-glyph.svg +8 -0
- package/skills/show/tests/fixtures/inherited-fill.svg +18 -0
- package/skills/show/tests/fixtures/invalid.svg +1 -0
- package/skills/show/tests/fixtures/large-canvas.svg +21 -0
- package/skills/show/tests/fixtures/unfilled-connector.svg +15 -0
- package/skills/show/tests/fixtures/valid.html +1 -0
- package/skills/show/tests/test_validate-artifact.py +74 -0
- package/skills/show/tests/test_validators.py +59 -0
- package/skills/show/workflows/create-visual.md +13 -0
- package/skills/show/workflows/review-visual.md +20 -0
- package/skills/split-pr/SKILL.md +85 -0
- package/skills/split-pr/reference/path-layers.md +16 -0
- package/skills/split-pr/reference/proposal-format.md +15 -0
- package/skills/split-pr/reference/split-further-loop.md +10 -0
- package/skills/split-pr/reference/splitting-principles.md +26 -0
- package/skills/split-pr/scripts/analyze_pr.py +279 -0
- package/skills/split-pr/scripts/categorize_files.py +106 -0
- package/skills/split-pr/scripts/config/__init__.py +1 -0
- package/skills/split-pr/scripts/config/dependency_constants.py +14 -0
- package/skills/split-pr/scripts/config/git_operations_constants.py +36 -0
- package/skills/split-pr/scripts/config/packing_constants.py +61 -0
- package/skills/split-pr/scripts/config/plan_constants.py +49 -0
- package/skills/split-pr/scripts/config/split_pr_constants.py +110 -0
- package/skills/split-pr/scripts/execute_split_slices.py +82 -0
- package/skills/split-pr/scripts/pack_files_into_slices.py +212 -0
- package/skills/split-pr/scripts/split_pr_dependency_graph.py +70 -0
- package/skills/split-pr/scripts/split_pr_git_operations.py +184 -0
- package/skills/split-pr/scripts/split_pr_layer_order.py +58 -0
- package/skills/split-pr/scripts/split_pr_paginate.py +119 -0
- package/skills/split-pr/scripts/split_pr_process_runner.py +52 -0
- package/skills/split-pr/scripts/split_pr_script_types.py +126 -0
- package/skills/split-pr/scripts/split_pr_title.py +41 -0
- package/skills/split-pr/scripts/test_analyze_pr.py +228 -0
- package/skills/split-pr/scripts/test_categorize_files.py +55 -0
- package/skills/split-pr/scripts/test_categorize_files_packing.py +59 -0
- package/skills/split-pr/scripts/test_execute_split_slices.py +99 -0
- package/skills/split-pr/scripts/test_split_pr_dependency_graph.py +47 -0
- package/skills/split-pr/scripts/test_split_pr_git_operations.py +125 -0
- package/skills/split-pr/scripts/test_split_pr_layer_order.py +36 -0
- package/skills/split-pr/scripts/test_split_pr_paginate.py +65 -0
- package/skills/split-pr/scripts/test_split_pr_script_types.py +73 -0
- package/skills/split-pr/scripts/test_split_pr_title.py +28 -0
- package/skills/split-pr/scripts/test_verify_dependency_graph.py +46 -0
- package/skills/split-pr/scripts/test_verify_plan.py +56 -0
- package/skills/split-pr/scripts/test_verify_plan_contract.py +50 -0
- package/skills/split-pr/scripts/test_verify_plan_path_normalization.py +45 -0
- package/skills/split-pr/scripts/verify_dependency_graph.py +111 -0
- package/skills/split-pr/scripts/verify_plan.py +139 -0
- package/system-prompts/software-engineer.xml +11 -2
- package/commands/initialize.md +0 -90
- package/commands/stubcheck.md +0 -88
- package/output-styles/caveman-agent.md +0 -37
|
@@ -0,0 +1,704 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"categories": [
|
|
4
|
+
{
|
|
5
|
+
"id": "A",
|
|
6
|
+
"title": "API contract verification",
|
|
7
|
+
"slug": "category-a-api-contracts",
|
|
8
|
+
"sub_buckets": [
|
|
9
|
+
{
|
|
10
|
+
"id": "A1",
|
|
11
|
+
"axis_name": "Python function signatures vs internal call sites"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"id": "A2",
|
|
15
|
+
"axis_name": "Python return-type annotation vs every code path"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "A3",
|
|
19
|
+
"axis_name": "argparse parser → Namespace contract"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "A4",
|
|
23
|
+
"axis_name": "Stdlib callback contracts"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "A5",
|
|
27
|
+
"axis_name": "subprocess invocation contract"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "A6",
|
|
31
|
+
"axis_name": "PowerShell cmdlet parameter sets and binding"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "A7",
|
|
35
|
+
"axis_name": "Cross-language argv boundary"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "A8",
|
|
39
|
+
"axis_name": "Documented API/tool calls vs official API documentation"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "A9",
|
|
43
|
+
"axis_name": "Intra-module sibling-helper API parity"
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "B",
|
|
49
|
+
"title": "Selector / query / engine compatibility",
|
|
50
|
+
"slug": "category-b-selector-engine-compat",
|
|
51
|
+
"sub_buckets": [
|
|
52
|
+
{
|
|
53
|
+
"id": "B1",
|
|
54
|
+
"axis_name": "CSS / DOM selector vs target browser engine"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "B2",
|
|
58
|
+
"axis_name": "SQL syntax vs database version"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"id": "B3",
|
|
62
|
+
"axis_name": "Regex syntax vs engine flavor"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "B4",
|
|
66
|
+
"axis_name": "Shell / CLI / cmdlet syntax vs runtime version"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"id": "B5",
|
|
70
|
+
"axis_name": "JSON path / XPath / structural query vs library"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"id": "B6",
|
|
74
|
+
"axis_name": "Search query DSL vs engine"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "B7",
|
|
78
|
+
"axis_name": "ORM vs raw SQL semantic differences"
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"id": "C",
|
|
84
|
+
"title": "Resource cleanup and lifecycle",
|
|
85
|
+
"slug": "category-c-resource-cleanup",
|
|
86
|
+
"sub_buckets": [
|
|
87
|
+
{
|
|
88
|
+
"id": "C1",
|
|
89
|
+
"axis_name": "File handles / file objects"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"id": "C2",
|
|
93
|
+
"axis_name": "Subprocess / child processes"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"id": "C3",
|
|
97
|
+
"axis_name": "Temporary files and directories"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"id": "C4",
|
|
101
|
+
"axis_name": "Network connections"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"id": "C5",
|
|
105
|
+
"axis_name": "Locks, semaphores, mutexes"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"id": "C6",
|
|
109
|
+
"axis_name": "Subscriptions / event listeners / signal handlers"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"id": "C7",
|
|
113
|
+
"axis_name": "Background threads / async tasks"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"id": "C8",
|
|
117
|
+
"axis_name": "OS-level resources"
|
|
118
|
+
}
|
|
119
|
+
]
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"id": "D",
|
|
123
|
+
"title": "Variable scoping, ordering, and unbound references",
|
|
124
|
+
"slug": "category-d-scoping-and-ordering",
|
|
125
|
+
"sub_buckets": [
|
|
126
|
+
{
|
|
127
|
+
"id": "D1",
|
|
128
|
+
"axis_name": "Variable referenced before assignment on a branch"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"id": "D2",
|
|
132
|
+
"axis_name": "Loop closure capture (by-ref vs by-value)"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"id": "D3",
|
|
136
|
+
"axis_name": "Name shadowing of outer-scope symbols"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"id": "D4",
|
|
140
|
+
"axis_name": "Conditional definition leaving symbol undefined"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"id": "D5",
|
|
144
|
+
"axis_name": "Mutable default arguments"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"id": "D6",
|
|
148
|
+
"axis_name": "Module-level circular imports / load order"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"id": "D7",
|
|
152
|
+
"axis_name": "Async/sync ordering of side effects"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"id": "D8",
|
|
156
|
+
"axis_name": "Class-attribute vs instance-attribute confusion"
|
|
157
|
+
}
|
|
158
|
+
]
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"id": "E",
|
|
162
|
+
"title": "Dead code and unused imports",
|
|
163
|
+
"slug": "category-e-dead-code",
|
|
164
|
+
"sub_buckets": [
|
|
165
|
+
{
|
|
166
|
+
"id": "E1",
|
|
167
|
+
"axis_name": "New imports without references"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"id": "E2",
|
|
171
|
+
"axis_name": "Functions / methods defined but never called"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"id": "E3",
|
|
175
|
+
"axis_name": "Code after unconditional return / raise / exit"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"id": "E4",
|
|
179
|
+
"axis_name": "Always-true / always-false conditions"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"id": "E5",
|
|
183
|
+
"axis_name": "Unused parameters and locals"
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"id": "E6",
|
|
187
|
+
"axis_name": "Removed-but-not-deleted symbol references"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"id": "E7",
|
|
191
|
+
"axis_name": "Test fixtures / helpers defined but never used"
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"id": "E8",
|
|
195
|
+
"axis_name": "Stub / placeholder code without TODO"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"id": "E9",
|
|
199
|
+
"axis_name": "Constants-module exports with no importer"
|
|
200
|
+
}
|
|
201
|
+
]
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"id": "F",
|
|
205
|
+
"title": "Silent failures",
|
|
206
|
+
"slug": "category-f-silent-failures",
|
|
207
|
+
"sub_buckets": [
|
|
208
|
+
{
|
|
209
|
+
"id": "F1",
|
|
210
|
+
"axis_name": "Catch-all except clauses"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"id": "F2",
|
|
214
|
+
"axis_name": "Errors logged then swallowed"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"id": "F3",
|
|
218
|
+
"axis_name": "Default fallback values masking failure"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"id": "F4",
|
|
222
|
+
"axis_name": "Async task error swallowing"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"id": "F5",
|
|
226
|
+
"axis_name": "Boolean / status returns identical on success and failure"
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"id": "F6",
|
|
230
|
+
"axis_name": "Ignored return values from fallible calls"
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"id": "F7",
|
|
234
|
+
"axis_name": "PowerShell error-suppression patterns"
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"id": "F8",
|
|
238
|
+
"axis_name": "Test-level swallowing"
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"id": "F9",
|
|
242
|
+
"axis_name": "Gate-validator self-defeat via parse-failure swallow"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"id": "F10",
|
|
246
|
+
"axis_name": "Guard helper returns success-default on unverifiable input"
|
|
247
|
+
}
|
|
248
|
+
]
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"id": "G",
|
|
252
|
+
"title": "Off-by-one, bounds, integer overflow",
|
|
253
|
+
"slug": "category-g-bounds-and-overflow",
|
|
254
|
+
"sub_buckets": [
|
|
255
|
+
{
|
|
256
|
+
"id": "G1",
|
|
257
|
+
"axis_name": "Loop bounds"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"id": "G2",
|
|
261
|
+
"axis_name": "Slice / substring indices"
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"id": "G3",
|
|
265
|
+
"axis_name": "Array / list indexing with computed offsets"
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"id": "G4",
|
|
269
|
+
"axis_name": "Integer arithmetic overflow"
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"id": "G5",
|
|
273
|
+
"axis_name": "Floating-point comparison"
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"id": "G6",
|
|
277
|
+
"axis_name": "Date / time arithmetic"
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"id": "G7",
|
|
281
|
+
"axis_name": "Unicode codepoint vs byte length"
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"id": "G8",
|
|
285
|
+
"axis_name": "Threshold and age comparisons"
|
|
286
|
+
}
|
|
287
|
+
]
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"id": "H",
|
|
291
|
+
"title": "Security boundaries",
|
|
292
|
+
"slug": "category-h-security-boundaries",
|
|
293
|
+
"sub_buckets": [
|
|
294
|
+
{
|
|
295
|
+
"id": "H1",
|
|
296
|
+
"axis_name": "SQL injection"
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"id": "H2",
|
|
300
|
+
"axis_name": "Command injection"
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"id": "H3",
|
|
304
|
+
"axis_name": "Path traversal"
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"id": "H4",
|
|
308
|
+
"axis_name": "Authentication bypass"
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"id": "H5",
|
|
312
|
+
"axis_name": "Authorization checks"
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"id": "H6",
|
|
316
|
+
"axis_name": "Secret / credential leakage"
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"id": "H7",
|
|
320
|
+
"axis_name": "SSRF / external request validation"
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
"id": "H8",
|
|
324
|
+
"axis_name": "CSRF / state-changing without token"
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"id": "H9",
|
|
328
|
+
"axis_name": "Deserialization"
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
"id": "H10",
|
|
332
|
+
"axis_name": "File upload / MIME validation"
|
|
333
|
+
}
|
|
334
|
+
]
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
"id": "I",
|
|
338
|
+
"title": "Concurrency hazards",
|
|
339
|
+
"slug": "category-i-concurrency",
|
|
340
|
+
"sub_buckets": [
|
|
341
|
+
{
|
|
342
|
+
"id": "I1",
|
|
343
|
+
"axis_name": "Shared mutable state without synchronization"
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"id": "I2",
|
|
347
|
+
"axis_name": "Missing await on async operations"
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
"id": "I3",
|
|
351
|
+
"axis_name": "Lock ordering / deadlock potential"
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
"id": "I4",
|
|
355
|
+
"axis_name": "Race conditions / TOCTOU"
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
"id": "I5",
|
|
359
|
+
"axis_name": "Atomicity of compound operations"
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
"id": "I6",
|
|
363
|
+
"axis_name": "Thread-local / async-local context bleed"
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
"id": "I7",
|
|
367
|
+
"axis_name": "Cancellation handling"
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
"id": "I8",
|
|
371
|
+
"axis_name": "Signal handling in multi-threaded code"
|
|
372
|
+
}
|
|
373
|
+
]
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
"id": "J",
|
|
377
|
+
"title": "CODE_RULES.md compliance",
|
|
378
|
+
"slug": "category-j-code-rules-compliance",
|
|
379
|
+
"sub_buckets": [
|
|
380
|
+
{
|
|
381
|
+
"id": "J1",
|
|
382
|
+
"axis_name": "Magic values in production function bodies"
|
|
383
|
+
},
|
|
384
|
+
{
|
|
385
|
+
"id": "J2",
|
|
386
|
+
"axis_name": "String-template magic"
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
"id": "J3",
|
|
390
|
+
"axis_name": "Constants location"
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"id": "J4",
|
|
394
|
+
"axis_name": "File-global use-count"
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
"id": "J5",
|
|
398
|
+
"axis_name": "Abbreviations"
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
"id": "J6",
|
|
402
|
+
"axis_name": "Vague names"
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"id": "J7",
|
|
406
|
+
"axis_name": "Type hints"
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
"id": "J8",
|
|
410
|
+
"axis_name": "New inline comments"
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
"id": "J9",
|
|
414
|
+
"axis_name": "Logging format"
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
"id": "J10",
|
|
418
|
+
"axis_name": "Imports inside functions"
|
|
419
|
+
},
|
|
420
|
+
{
|
|
421
|
+
"id": "J11",
|
|
422
|
+
"axis_name": "sys.path.insert dedup"
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
"id": "J12",
|
|
426
|
+
"axis_name": "Hardcoded user paths"
|
|
427
|
+
}
|
|
428
|
+
]
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"id": "K",
|
|
432
|
+
"title": "Codebase conflicts (incomplete propagation)",
|
|
433
|
+
"slug": "category-k-codebase-conflicts",
|
|
434
|
+
"sub_buckets": [
|
|
435
|
+
{
|
|
436
|
+
"id": "K1",
|
|
437
|
+
"axis_name": "Multi-site name renames"
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
"id": "K2",
|
|
441
|
+
"axis_name": "Duplicated constants / defaults"
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"id": "K3",
|
|
445
|
+
"axis_name": "Primary path vs fallback path"
|
|
446
|
+
},
|
|
447
|
+
{
|
|
448
|
+
"id": "K4",
|
|
449
|
+
"axis_name": "Feature flag / version gate consistency"
|
|
450
|
+
},
|
|
451
|
+
{
|
|
452
|
+
"id": "K5",
|
|
453
|
+
"axis_name": "Producer-vs-consumer type contracts"
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
"id": "K6",
|
|
457
|
+
"axis_name": "Code vs documentation sync (cross-surface)"
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
"id": "K7",
|
|
461
|
+
"axis_name": "Code vs test sync"
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
"id": "K8",
|
|
465
|
+
"axis_name": "Cross-file / cross-language contract sync"
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
"id": "K9",
|
|
469
|
+
"axis_name": "Schema / data-shape propagation"
|
|
470
|
+
},
|
|
471
|
+
{
|
|
472
|
+
"id": "K10",
|
|
473
|
+
"axis_name": "Intra-file sibling-helper pattern propagation"
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
"id": "K11",
|
|
477
|
+
"axis_name": "Intra-document internal contradiction"
|
|
478
|
+
}
|
|
479
|
+
]
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
"id": "L",
|
|
483
|
+
"title": "Behavior-equivalence for refactors",
|
|
484
|
+
"slug": "category-l-behavior-equivalence",
|
|
485
|
+
"sub_buckets": [
|
|
486
|
+
{
|
|
487
|
+
"id": "L1",
|
|
488
|
+
"axis_name": "KNOWN_GOOD_INPUTS table presence"
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
"id": "L2",
|
|
492
|
+
"axis_name": "Whitespace / separator variants"
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
"id": "L3",
|
|
496
|
+
"axis_name": "Adjacent-form regressions"
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
"id": "L4",
|
|
500
|
+
"axis_name": "Empty / boundary inputs"
|
|
501
|
+
},
|
|
502
|
+
{
|
|
503
|
+
"id": "L5",
|
|
504
|
+
"axis_name": "Invariant preservation"
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
"id": "L6",
|
|
508
|
+
"axis_name": "Implementation-tag parity"
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
"id": "L7",
|
|
512
|
+
"axis_name": "Skipped-category exhaustion"
|
|
513
|
+
},
|
|
514
|
+
{
|
|
515
|
+
"id": "L8",
|
|
516
|
+
"axis_name": "Sibling-implementation comparison"
|
|
517
|
+
}
|
|
518
|
+
]
|
|
519
|
+
},
|
|
520
|
+
{
|
|
521
|
+
"id": "M",
|
|
522
|
+
"title": "Producer/consumer cardinality vs collection-type contract",
|
|
523
|
+
"slug": "category-m-producer-consumer-cardinality",
|
|
524
|
+
"sub_buckets": [
|
|
525
|
+
{
|
|
526
|
+
"id": "M1",
|
|
527
|
+
"axis_name": "Subprocess-stdout parsers"
|
|
528
|
+
},
|
|
529
|
+
{
|
|
530
|
+
"id": "M2",
|
|
531
|
+
"axis_name": "Database / registry queries"
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
"id": "M3",
|
|
535
|
+
"axis_name": "Consumer-expects-set anti-pattern"
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
"id": "M4",
|
|
539
|
+
"axis_name": "`extend(...)` into list consumers (acceptable)"
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
"id": "M5",
|
|
543
|
+
"axis_name": "\"Duplicates preserved\" docstring (acceptable)"
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
"id": "M6",
|
|
547
|
+
"axis_name": "Producer signature widening"
|
|
548
|
+
},
|
|
549
|
+
{
|
|
550
|
+
"id": "M7",
|
|
551
|
+
"axis_name": "Recursive / cycle-prone walkers"
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
"id": "M8",
|
|
555
|
+
"axis_name": "Stream-fold accumulators"
|
|
556
|
+
}
|
|
557
|
+
]
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
"id": "N",
|
|
561
|
+
"title": "Test-name scenario verifier",
|
|
562
|
+
"slug": "category-n-test-name-scenario-verifier",
|
|
563
|
+
"sub_buckets": [
|
|
564
|
+
{
|
|
565
|
+
"id": "N1",
|
|
566
|
+
"axis_name": "Scenario-named tests demonstrate the scenario"
|
|
567
|
+
},
|
|
568
|
+
{
|
|
569
|
+
"id": "N2",
|
|
570
|
+
"axis_name": "Path-decision parametric matrices"
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
"id": "N3",
|
|
574
|
+
"axis_name": "Tests that pass \"for the wrong reason\""
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
"id": "N4",
|
|
578
|
+
"axis_name": "No-op branch exercised by scenario name"
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
"id": "N5",
|
|
582
|
+
"axis_name": "Assertion shape mismatch"
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
"id": "N6",
|
|
586
|
+
"axis_name": "Cross-platform scenario gating"
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
"id": "N7",
|
|
590
|
+
"axis_name": "Time / clock scenario gating"
|
|
591
|
+
},
|
|
592
|
+
{
|
|
593
|
+
"id": "N8",
|
|
594
|
+
"axis_name": "Concurrent / load scenario gating"
|
|
595
|
+
},
|
|
596
|
+
{
|
|
597
|
+
"id": "N9",
|
|
598
|
+
"axis_name": "Neutral-named tests (out of scope)"
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
"id": "N10",
|
|
602
|
+
"axis_name": "Test fixture wiring correctness"
|
|
603
|
+
}
|
|
604
|
+
]
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
"id": "O",
|
|
608
|
+
"title": "Docstring / fixture-prose vs implementation drift",
|
|
609
|
+
"slug": "category-o-docstring-vs-impl-drift",
|
|
610
|
+
"sub_buckets": [
|
|
611
|
+
{
|
|
612
|
+
"id": "O1",
|
|
613
|
+
"axis_name": "Module-level responsibility verbs"
|
|
614
|
+
},
|
|
615
|
+
{
|
|
616
|
+
"id": "O2",
|
|
617
|
+
"axis_name": "Fixture docstring vs sibling-test behavior"
|
|
618
|
+
},
|
|
619
|
+
{
|
|
620
|
+
"id": "O3",
|
|
621
|
+
"axis_name": "Predicate-name and -docstring vs body breadth"
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
"id": "O4",
|
|
625
|
+
"axis_name": "Step-ordering narrative"
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
"id": "O5",
|
|
629
|
+
"axis_name": "Named-sentinel / filename references"
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
"id": "O6",
|
|
633
|
+
"axis_name": "Free-form `Args:`-adjacent claims"
|
|
634
|
+
},
|
|
635
|
+
{
|
|
636
|
+
"id": "O7",
|
|
637
|
+
"axis_name": "Module-doc-vs-split-module after refactor"
|
|
638
|
+
},
|
|
639
|
+
{
|
|
640
|
+
"id": "O8",
|
|
641
|
+
"axis_name": "Companion-doc ordering/content vs producer"
|
|
642
|
+
},
|
|
643
|
+
{
|
|
644
|
+
"id": "O9",
|
|
645
|
+
"axis_name": "Python docstring plainness for a general developer"
|
|
646
|
+
}
|
|
647
|
+
]
|
|
648
|
+
},
|
|
649
|
+
{
|
|
650
|
+
"id": "P",
|
|
651
|
+
"title": "Name / regex / word-list vs behavior-contract precision",
|
|
652
|
+
"slug": "category-p-name-vs-behavior-contract",
|
|
653
|
+
"sub_buckets": [
|
|
654
|
+
{
|
|
655
|
+
"id": "P1",
|
|
656
|
+
"axis_name": "Boolean / flag names assert state the body keeps"
|
|
657
|
+
},
|
|
658
|
+
{
|
|
659
|
+
"id": "P2",
|
|
660
|
+
"axis_name": "Predicate-name breadth matches body coverage"
|
|
661
|
+
},
|
|
662
|
+
{
|
|
663
|
+
"id": "P3",
|
|
664
|
+
"axis_name": "Regex name vs regex shape"
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
"id": "P4",
|
|
668
|
+
"axis_name": "Helper-function name vs return contract"
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
"id": "P5",
|
|
672
|
+
"axis_name": "Word-list / replacement-table precision"
|
|
673
|
+
},
|
|
674
|
+
{
|
|
675
|
+
"id": "P6",
|
|
676
|
+
"axis_name": "Class / module name vs scope"
|
|
677
|
+
},
|
|
678
|
+
{
|
|
679
|
+
"id": "P7",
|
|
680
|
+
"axis_name": "Reverse: name understates what the body does"
|
|
681
|
+
}
|
|
682
|
+
]
|
|
683
|
+
},
|
|
684
|
+
{
|
|
685
|
+
"id": "Q",
|
|
686
|
+
"title": "Cross-surface claim consistency (terminology, PR-description claims, message-vs-guard)",
|
|
687
|
+
"slug": "category-q-cross-surface-claims",
|
|
688
|
+
"sub_buckets": [
|
|
689
|
+
{
|
|
690
|
+
"id": "Q1",
|
|
691
|
+
"axis_name": "Term sweep"
|
|
692
|
+
},
|
|
693
|
+
{
|
|
694
|
+
"id": "Q2",
|
|
695
|
+
"axis_name": "PR-description claim verification"
|
|
696
|
+
},
|
|
697
|
+
{
|
|
698
|
+
"id": "Q3",
|
|
699
|
+
"axis_name": "Message-vs-guard consistency"
|
|
700
|
+
}
|
|
701
|
+
]
|
|
702
|
+
}
|
|
703
|
+
]
|
|
704
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Audit [REPO/ARTIFACT] [TARGET_ID] for **Category I only** (concurrency hazards). Skip A–H, J–P. Sub-bucket forced-exhaustion mode: Category I is decomposed into
|
|
1
|
+
Audit [REPO/ARTIFACT] [TARGET_ID] for **Category I only** (concurrency hazards). Skip A–H, J–P. Sub-bucket forced-exhaustion mode: Category I is decomposed into 8 sub-buckets below. Each sub-bucket REQUIRES at least one Shape A finding OR exactly one Shape B proof-of-absence with **at least 3 adversarial probes** specific to that sub-bucket. A sub-bucket returning neither is a protocol gap.
|
|
2
2
|
|
|
3
3
|
[ARTIFACT METADATA — including: is this code single-threaded, threaded, asyncio, multiprocessing, or mixed? Name the runtime (CPython 3.x, Node, Go, JVM, .NET, PowerShell runspace, browser JS), the concurrency primitives actually present (`threading`, `asyncio`, `multiprocessing`, `concurrent.futures`, `Thread`, `goroutine`, `Promise`, `Task`, `Start-ThreadJob`, `ForEach-Object -Parallel`, etc.), and the inter-process surface (shared filesystem, shared DB, shared cache, shared queue, signals). State explicitly which primitives are absent so each sub-bucket has a Shape B basis.]
|
|
4
4
|
|