valanistack 0.1.0__tar.gz
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.
- valanistack-0.1.0/.github/workflows/ci.yml +252 -0
- valanistack-0.1.0/.github/workflows/release.yml +152 -0
- valanistack-0.1.0/.gitignore +53 -0
- valanistack-0.1.0/.pre-commit-config.yaml +50 -0
- valanistack-0.1.0/CHANGELOG.md +133 -0
- valanistack-0.1.0/CITATIONS.md +78 -0
- valanistack-0.1.0/CONTRIBUTING.md +125 -0
- valanistack-0.1.0/LICENSE +21 -0
- valanistack-0.1.0/PATTERNS.md +101 -0
- valanistack-0.1.0/PKG-INFO +262 -0
- valanistack-0.1.0/README.md +193 -0
- valanistack-0.1.0/SECURITY.md +89 -0
- valanistack-0.1.0/_packaging/vstack/__init__.py +38 -0
- valanistack-0.1.0/_packaging/vstack/py.typed +0 -0
- valanistack-0.1.0/benchmarks/_perf/README.md +48 -0
- valanistack-0.1.0/benchmarks/_perf/run_perf_suite.py +383 -0
- valanistack-0.1.0/examples/cookbook/01_aar_then_lewin.py +154 -0
- valanistack-0.1.0/examples/cookbook/02_parallel_pattern_fan_out.py +213 -0
- valanistack-0.1.0/examples/cookbook/03_observable_run.py +154 -0
- valanistack-0.1.0/examples/cookbook/README.md +35 -0
- valanistack-0.1.0/module-1-individual/01-lewin-formula/README.md +594 -0
- valanistack-0.1.0/module-1-individual/01-lewin-formula/demo/01_self_contained_demo.py +251 -0
- valanistack-0.1.0/module-1-individual/01-lewin-formula/essay.md +93 -0
- valanistack-0.1.0/module-1-individual/01-lewin-formula/eval/run_benchmark.py +159 -0
- valanistack-0.1.0/module-1-individual/01-lewin-formula/eval/synthetic_lewin_failures.yaml +144 -0
- valanistack-0.1.0/module-1-individual/01-lewin-formula/lib/CITATIONS.md +212 -0
- valanistack-0.1.0/module-1-individual/01-lewin-formula/lib/__init__.py +196 -0
- valanistack-0.1.0/module-1-individual/01-lewin-formula/lib/_calibration.py +142 -0
- valanistack-0.1.0/module-1-individual/01-lewin-formula/lib/_composition.py +189 -0
- valanistack-0.1.0/module-1-individual/01-lewin-formula/lib/_playbooks.py +286 -0
- valanistack-0.1.0/module-1-individual/01-lewin-formula/lib/cli.py +358 -0
- valanistack-0.1.0/module-1-individual/01-lewin-formula/lib/generator.py +1054 -0
- valanistack-0.1.0/module-1-individual/01-lewin-formula/lib/prompts.py +385 -0
- valanistack-0.1.0/module-1-individual/01-lewin-formula/lib/schema.py +843 -0
- valanistack-0.1.0/module-1-individual/01-lewin-formula/tests/conftest.py +5 -0
- valanistack-0.1.0/module-1-individual/01-lewin-formula/tests/test_lewin.py +270 -0
- valanistack-0.1.0/module-1-individual/01-lewin-formula/tests/test_lewin_cli.py +256 -0
- valanistack-0.1.0/module-1-individual/01-lewin-formula/tests/test_lewin_v2.py +876 -0
- valanistack-0.1.0/module-1-individual/02-goleman-ei-audit/README.md +344 -0
- valanistack-0.1.0/module-1-individual/02-goleman-ei-audit/demo/01_self_contained_demo.py +223 -0
- valanistack-0.1.0/module-1-individual/02-goleman-ei-audit/essay.md +100 -0
- valanistack-0.1.0/module-1-individual/02-goleman-ei-audit/eval/run_benchmark.py +136 -0
- valanistack-0.1.0/module-1-individual/02-goleman-ei-audit/eval/synthetic_ei_traces.yaml +140 -0
- valanistack-0.1.0/module-1-individual/02-goleman-ei-audit/lib/CITATIONS.md +203 -0
- valanistack-0.1.0/module-1-individual/02-goleman-ei-audit/lib/__init__.py +203 -0
- valanistack-0.1.0/module-1-individual/02-goleman-ei-audit/lib/_calibration.py +138 -0
- valanistack-0.1.0/module-1-individual/02-goleman-ei-audit/lib/_composition.py +199 -0
- valanistack-0.1.0/module-1-individual/02-goleman-ei-audit/lib/_playbooks.py +297 -0
- valanistack-0.1.0/module-1-individual/02-goleman-ei-audit/lib/cli.py +284 -0
- valanistack-0.1.0/module-1-individual/02-goleman-ei-audit/lib/generator.py +961 -0
- valanistack-0.1.0/module-1-individual/02-goleman-ei-audit/lib/prompts.py +298 -0
- valanistack-0.1.0/module-1-individual/02-goleman-ei-audit/lib/schema.py +721 -0
- valanistack-0.1.0/module-1-individual/02-goleman-ei-audit/tests/conftest.py +5 -0
- valanistack-0.1.0/module-1-individual/02-goleman-ei-audit/tests/test_goleman_ei.py +231 -0
- valanistack-0.1.0/module-1-individual/02-goleman-ei-audit/tests/test_goleman_ei_cli.py +203 -0
- valanistack-0.1.0/module-1-individual/02-goleman-ei-audit/tests/test_goleman_ei_v2.py +800 -0
- valanistack-0.1.0/module-1-individual/03-johari-window/README.md +263 -0
- valanistack-0.1.0/module-1-individual/03-johari-window/demo/01_self_contained_demo.py +225 -0
- valanistack-0.1.0/module-1-individual/03-johari-window/essay.md +82 -0
- valanistack-0.1.0/module-1-individual/03-johari-window/eval/run_benchmark.py +155 -0
- valanistack-0.1.0/module-1-individual/03-johari-window/eval/synthetic_johari_failures.yaml +105 -0
- valanistack-0.1.0/module-1-individual/03-johari-window/lib/CITATIONS.md +172 -0
- valanistack-0.1.0/module-1-individual/03-johari-window/lib/__init__.py +203 -0
- valanistack-0.1.0/module-1-individual/03-johari-window/lib/_calibration.py +143 -0
- valanistack-0.1.0/module-1-individual/03-johari-window/lib/_composition.py +209 -0
- valanistack-0.1.0/module-1-individual/03-johari-window/lib/_playbooks.py +246 -0
- valanistack-0.1.0/module-1-individual/03-johari-window/lib/cli.py +290 -0
- valanistack-0.1.0/module-1-individual/03-johari-window/lib/generator.py +992 -0
- valanistack-0.1.0/module-1-individual/03-johari-window/lib/prompts.py +361 -0
- valanistack-0.1.0/module-1-individual/03-johari-window/lib/schema.py +738 -0
- valanistack-0.1.0/module-1-individual/03-johari-window/tests/conftest.py +5 -0
- valanistack-0.1.0/module-1-individual/03-johari-window/tests/test_johari.py +292 -0
- valanistack-0.1.0/module-1-individual/03-johari-window/tests/test_johari_cli.py +179 -0
- valanistack-0.1.0/module-1-individual/03-johari-window/tests/test_johari_v2.py +588 -0
- valanistack-0.1.0/module-1-individual/04-danva-emotion-reader/README.md +191 -0
- valanistack-0.1.0/module-1-individual/04-danva-emotion-reader/demo/01_self_contained_demo.py +214 -0
- valanistack-0.1.0/module-1-individual/04-danva-emotion-reader/essay.md +71 -0
- valanistack-0.1.0/module-1-individual/04-danva-emotion-reader/eval/run_benchmark.py +132 -0
- valanistack-0.1.0/module-1-individual/04-danva-emotion-reader/eval/synthetic_emotion_batches.yaml +144 -0
- valanistack-0.1.0/module-1-individual/04-danva-emotion-reader/lib/CITATIONS.md +146 -0
- valanistack-0.1.0/module-1-individual/04-danva-emotion-reader/lib/__init__.py +196 -0
- valanistack-0.1.0/module-1-individual/04-danva-emotion-reader/lib/_calibration.py +104 -0
- valanistack-0.1.0/module-1-individual/04-danva-emotion-reader/lib/_composition.py +147 -0
- valanistack-0.1.0/module-1-individual/04-danva-emotion-reader/lib/_playbooks.py +224 -0
- valanistack-0.1.0/module-1-individual/04-danva-emotion-reader/lib/cli.py +268 -0
- valanistack-0.1.0/module-1-individual/04-danva-emotion-reader/lib/generator.py +990 -0
- valanistack-0.1.0/module-1-individual/04-danva-emotion-reader/lib/prompts.py +197 -0
- valanistack-0.1.0/module-1-individual/04-danva-emotion-reader/lib/schema.py +746 -0
- valanistack-0.1.0/module-1-individual/04-danva-emotion-reader/tests/conftest.py +5 -0
- valanistack-0.1.0/module-1-individual/04-danva-emotion-reader/tests/test_danva_emotion.py +240 -0
- valanistack-0.1.0/module-1-individual/04-danva-emotion-reader/tests/test_danva_v2.py +432 -0
- valanistack-0.1.0/module-1-individual/05-cognitive-reappraisal/README.md +183 -0
- valanistack-0.1.0/module-1-individual/05-cognitive-reappraisal/demo/01_self_contained_demo.py +233 -0
- valanistack-0.1.0/module-1-individual/05-cognitive-reappraisal/essay.md +81 -0
- valanistack-0.1.0/module-1-individual/05-cognitive-reappraisal/eval/run_benchmark.py +134 -0
- valanistack-0.1.0/module-1-individual/05-cognitive-reappraisal/eval/synthetic_regulation_traces.yaml +72 -0
- valanistack-0.1.0/module-1-individual/05-cognitive-reappraisal/lib/CITATIONS.md +101 -0
- valanistack-0.1.0/module-1-individual/05-cognitive-reappraisal/lib/__init__.py +180 -0
- valanistack-0.1.0/module-1-individual/05-cognitive-reappraisal/lib/_calibration.py +104 -0
- valanistack-0.1.0/module-1-individual/05-cognitive-reappraisal/lib/_composition.py +141 -0
- valanistack-0.1.0/module-1-individual/05-cognitive-reappraisal/lib/_playbooks.py +232 -0
- valanistack-0.1.0/module-1-individual/05-cognitive-reappraisal/lib/cli.py +269 -0
- valanistack-0.1.0/module-1-individual/05-cognitive-reappraisal/lib/generator.py +712 -0
- valanistack-0.1.0/module-1-individual/05-cognitive-reappraisal/lib/prompts.py +245 -0
- valanistack-0.1.0/module-1-individual/05-cognitive-reappraisal/lib/schema.py +586 -0
- valanistack-0.1.0/module-1-individual/05-cognitive-reappraisal/tests/conftest.py +5 -0
- valanistack-0.1.0/module-1-individual/05-cognitive-reappraisal/tests/test_cognitive_reappraisal.py +224 -0
- valanistack-0.1.0/module-1-individual/05-cognitive-reappraisal/tests/test_cognitive_reappraisal_v2.py +357 -0
- valanistack-0.1.0/module-1-individual/06-yerkes-dodson-workload/README.md +184 -0
- valanistack-0.1.0/module-1-individual/06-yerkes-dodson-workload/demo/01_self_contained_demo.py +196 -0
- valanistack-0.1.0/module-1-individual/06-yerkes-dodson-workload/essay.md +88 -0
- valanistack-0.1.0/module-1-individual/06-yerkes-dodson-workload/eval/run_benchmark.py +142 -0
- valanistack-0.1.0/module-1-individual/06-yerkes-dodson-workload/eval/synthetic_workload_failures.yaml +125 -0
- valanistack-0.1.0/module-1-individual/06-yerkes-dodson-workload/lib/CITATIONS.md +160 -0
- valanistack-0.1.0/module-1-individual/06-yerkes-dodson-workload/lib/__init__.py +171 -0
- valanistack-0.1.0/module-1-individual/06-yerkes-dodson-workload/lib/_calibration.py +92 -0
- valanistack-0.1.0/module-1-individual/06-yerkes-dodson-workload/lib/_composition.py +133 -0
- valanistack-0.1.0/module-1-individual/06-yerkes-dodson-workload/lib/_playbooks.py +226 -0
- valanistack-0.1.0/module-1-individual/06-yerkes-dodson-workload/lib/cli.py +269 -0
- valanistack-0.1.0/module-1-individual/06-yerkes-dodson-workload/lib/generator.py +861 -0
- valanistack-0.1.0/module-1-individual/06-yerkes-dodson-workload/lib/prompts.py +193 -0
- valanistack-0.1.0/module-1-individual/06-yerkes-dodson-workload/lib/schema.py +489 -0
- valanistack-0.1.0/module-1-individual/06-yerkes-dodson-workload/tests/conftest.py +5 -0
- valanistack-0.1.0/module-1-individual/06-yerkes-dodson-workload/tests/test_yerkes_dodson.py +223 -0
- valanistack-0.1.0/module-1-individual/06-yerkes-dodson-workload/tests/test_yerkes_dodson_v2.py +492 -0
- valanistack-0.1.0/module-1-individual/07-hexaco-personality/README.md +177 -0
- valanistack-0.1.0/module-1-individual/07-hexaco-personality/demo/01_self_contained_demo.py +243 -0
- valanistack-0.1.0/module-1-individual/07-hexaco-personality/essay.md +105 -0
- valanistack-0.1.0/module-1-individual/07-hexaco-personality/eval/run_benchmark.py +142 -0
- valanistack-0.1.0/module-1-individual/07-hexaco-personality/eval/synthetic_hexaco_traces.yaml +116 -0
- valanistack-0.1.0/module-1-individual/07-hexaco-personality/lib/CITATIONS.md +145 -0
- valanistack-0.1.0/module-1-individual/07-hexaco-personality/lib/__init__.py +175 -0
- valanistack-0.1.0/module-1-individual/07-hexaco-personality/lib/_calibration.py +92 -0
- valanistack-0.1.0/module-1-individual/07-hexaco-personality/lib/_composition.py +152 -0
- valanistack-0.1.0/module-1-individual/07-hexaco-personality/lib/_playbooks.py +225 -0
- valanistack-0.1.0/module-1-individual/07-hexaco-personality/lib/cli.py +268 -0
- valanistack-0.1.0/module-1-individual/07-hexaco-personality/lib/generator.py +819 -0
- valanistack-0.1.0/module-1-individual/07-hexaco-personality/lib/prompts.py +298 -0
- valanistack-0.1.0/module-1-individual/07-hexaco-personality/lib/schema.py +660 -0
- valanistack-0.1.0/module-1-individual/07-hexaco-personality/tests/conftest.py +5 -0
- valanistack-0.1.0/module-1-individual/07-hexaco-personality/tests/test_hexaco_personality.py +226 -0
- valanistack-0.1.0/module-1-individual/07-hexaco-personality/tests/test_hexaco_v2.py +492 -0
- valanistack-0.1.0/module-1-individual/08-grant-strengths-as-weaknesses/README.md +181 -0
- valanistack-0.1.0/module-1-individual/08-grant-strengths-as-weaknesses/demo/01_self_contained_demo.py +263 -0
- valanistack-0.1.0/module-1-individual/08-grant-strengths-as-weaknesses/essay.md +80 -0
- valanistack-0.1.0/module-1-individual/08-grant-strengths-as-weaknesses/eval/run_benchmark.py +144 -0
- valanistack-0.1.0/module-1-individual/08-grant-strengths-as-weaknesses/eval/synthetic_strength_failures.yaml +118 -0
- valanistack-0.1.0/module-1-individual/08-grant-strengths-as-weaknesses/lib/CITATIONS.md +120 -0
- valanistack-0.1.0/module-1-individual/08-grant-strengths-as-weaknesses/lib/__init__.py +182 -0
- valanistack-0.1.0/module-1-individual/08-grant-strengths-as-weaknesses/lib/_calibration.py +91 -0
- valanistack-0.1.0/module-1-individual/08-grant-strengths-as-weaknesses/lib/_composition.py +159 -0
- valanistack-0.1.0/module-1-individual/08-grant-strengths-as-weaknesses/lib/_playbooks.py +226 -0
- valanistack-0.1.0/module-1-individual/08-grant-strengths-as-weaknesses/lib/cli.py +269 -0
- valanistack-0.1.0/module-1-individual/08-grant-strengths-as-weaknesses/lib/generator.py +802 -0
- valanistack-0.1.0/module-1-individual/08-grant-strengths-as-weaknesses/lib/prompts.py +270 -0
- valanistack-0.1.0/module-1-individual/08-grant-strengths-as-weaknesses/lib/schema.py +593 -0
- valanistack-0.1.0/module-1-individual/08-grant-strengths-as-weaknesses/tests/conftest.py +5 -0
- valanistack-0.1.0/module-1-individual/08-grant-strengths-as-weaknesses/tests/test_grant_strengths.py +224 -0
- valanistack-0.1.0/module-1-individual/08-grant-strengths-as-weaknesses/tests/test_grant_v2.py +450 -0
- valanistack-0.1.0/module-1-individual/09-motivation-traps/README.md +162 -0
- valanistack-0.1.0/module-1-individual/09-motivation-traps/demo/01_self_contained_demo.py +200 -0
- valanistack-0.1.0/module-1-individual/09-motivation-traps/essay.md +87 -0
- valanistack-0.1.0/module-1-individual/09-motivation-traps/eval/run_benchmark.py +135 -0
- valanistack-0.1.0/module-1-individual/09-motivation-traps/eval/synthetic_motivation_traces.yaml +125 -0
- valanistack-0.1.0/module-1-individual/09-motivation-traps/lib/CITATIONS.md +118 -0
- valanistack-0.1.0/module-1-individual/09-motivation-traps/lib/__init__.py +179 -0
- valanistack-0.1.0/module-1-individual/09-motivation-traps/lib/_calibration.py +93 -0
- valanistack-0.1.0/module-1-individual/09-motivation-traps/lib/_composition.py +160 -0
- valanistack-0.1.0/module-1-individual/09-motivation-traps/lib/_playbooks.py +227 -0
- valanistack-0.1.0/module-1-individual/09-motivation-traps/lib/cli.py +269 -0
- valanistack-0.1.0/module-1-individual/09-motivation-traps/lib/generator.py +753 -0
- valanistack-0.1.0/module-1-individual/09-motivation-traps/lib/prompts.py +257 -0
- valanistack-0.1.0/module-1-individual/09-motivation-traps/lib/schema.py +534 -0
- valanistack-0.1.0/module-1-individual/09-motivation-traps/tests/conftest.py +5 -0
- valanistack-0.1.0/module-1-individual/09-motivation-traps/tests/test_motivation_traps.py +234 -0
- valanistack-0.1.0/module-1-individual/09-motivation-traps/tests/test_motivation_v2.py +450 -0
- valanistack-0.1.0/module-1-individual/10-sdt-intrinsic-reward/README.md +157 -0
- valanistack-0.1.0/module-1-individual/10-sdt-intrinsic-reward/demo/01_self_contained_demo.py +230 -0
- valanistack-0.1.0/module-1-individual/10-sdt-intrinsic-reward/essay.md +105 -0
- valanistack-0.1.0/module-1-individual/10-sdt-intrinsic-reward/eval/run_benchmark.py +135 -0
- valanistack-0.1.0/module-1-individual/10-sdt-intrinsic-reward/eval/synthetic_sdt_traces.yaml +119 -0
- valanistack-0.1.0/module-1-individual/10-sdt-intrinsic-reward/lib/CITATIONS.md +118 -0
- valanistack-0.1.0/module-1-individual/10-sdt-intrinsic-reward/lib/__init__.py +179 -0
- valanistack-0.1.0/module-1-individual/10-sdt-intrinsic-reward/lib/_calibration.py +91 -0
- valanistack-0.1.0/module-1-individual/10-sdt-intrinsic-reward/lib/_composition.py +157 -0
- valanistack-0.1.0/module-1-individual/10-sdt-intrinsic-reward/lib/_playbooks.py +226 -0
- valanistack-0.1.0/module-1-individual/10-sdt-intrinsic-reward/lib/cli.py +269 -0
- valanistack-0.1.0/module-1-individual/10-sdt-intrinsic-reward/lib/generator.py +806 -0
- valanistack-0.1.0/module-1-individual/10-sdt-intrinsic-reward/lib/prompts.py +263 -0
- valanistack-0.1.0/module-1-individual/10-sdt-intrinsic-reward/lib/schema.py +572 -0
- valanistack-0.1.0/module-1-individual/10-sdt-intrinsic-reward/tests/conftest.py +5 -0
- valanistack-0.1.0/module-1-individual/10-sdt-intrinsic-reward/tests/test_sdt_reward.py +227 -0
- valanistack-0.1.0/module-1-individual/10-sdt-intrinsic-reward/tests/test_sdt_v2.py +466 -0
- valanistack-0.1.0/module-1-individual/11-mcgregor-orchestrator-mode/README.md +162 -0
- valanistack-0.1.0/module-1-individual/11-mcgregor-orchestrator-mode/demo/01_self_contained_demo.py +250 -0
- valanistack-0.1.0/module-1-individual/11-mcgregor-orchestrator-mode/essay.md +85 -0
- valanistack-0.1.0/module-1-individual/11-mcgregor-orchestrator-mode/eval/run_benchmark.py +162 -0
- valanistack-0.1.0/module-1-individual/11-mcgregor-orchestrator-mode/eval/synthetic_orchestrator_failures.yaml +173 -0
- valanistack-0.1.0/module-1-individual/11-mcgregor-orchestrator-mode/lib/CITATIONS.md +115 -0
- valanistack-0.1.0/module-1-individual/11-mcgregor-orchestrator-mode/lib/__init__.py +174 -0
- valanistack-0.1.0/module-1-individual/11-mcgregor-orchestrator-mode/lib/_calibration.py +99 -0
- valanistack-0.1.0/module-1-individual/11-mcgregor-orchestrator-mode/lib/_composition.py +150 -0
- valanistack-0.1.0/module-1-individual/11-mcgregor-orchestrator-mode/lib/_playbooks.py +224 -0
- valanistack-0.1.0/module-1-individual/11-mcgregor-orchestrator-mode/lib/cli.py +269 -0
- valanistack-0.1.0/module-1-individual/11-mcgregor-orchestrator-mode/lib/generator.py +791 -0
- valanistack-0.1.0/module-1-individual/11-mcgregor-orchestrator-mode/lib/prompts.py +256 -0
- valanistack-0.1.0/module-1-individual/11-mcgregor-orchestrator-mode/lib/schema.py +559 -0
- valanistack-0.1.0/module-1-individual/11-mcgregor-orchestrator-mode/tests/conftest.py +5 -0
- valanistack-0.1.0/module-1-individual/11-mcgregor-orchestrator-mode/tests/test_mcgregor.py +277 -0
- valanistack-0.1.0/module-1-individual/11-mcgregor-orchestrator-mode/tests/test_mcgregor_v2.py +472 -0
- valanistack-0.1.0/module-1-individual/12-vroom-expectancy/README.md +166 -0
- valanistack-0.1.0/module-1-individual/12-vroom-expectancy/demo/01_self_contained_demo.py +204 -0
- valanistack-0.1.0/module-1-individual/12-vroom-expectancy/essay.md +112 -0
- valanistack-0.1.0/module-1-individual/12-vroom-expectancy/eval/run_benchmark.py +135 -0
- valanistack-0.1.0/module-1-individual/12-vroom-expectancy/eval/synthetic_vroom_traces.yaml +88 -0
- valanistack-0.1.0/module-1-individual/12-vroom-expectancy/lib/CITATIONS.md +115 -0
- valanistack-0.1.0/module-1-individual/12-vroom-expectancy/lib/__init__.py +175 -0
- valanistack-0.1.0/module-1-individual/12-vroom-expectancy/lib/_calibration.py +90 -0
- valanistack-0.1.0/module-1-individual/12-vroom-expectancy/lib/_composition.py +159 -0
- valanistack-0.1.0/module-1-individual/12-vroom-expectancy/lib/_playbooks.py +224 -0
- valanistack-0.1.0/module-1-individual/12-vroom-expectancy/lib/cli.py +269 -0
- valanistack-0.1.0/module-1-individual/12-vroom-expectancy/lib/generator.py +803 -0
- valanistack-0.1.0/module-1-individual/12-vroom-expectancy/lib/prompts.py +236 -0
- valanistack-0.1.0/module-1-individual/12-vroom-expectancy/lib/schema.py +557 -0
- valanistack-0.1.0/module-1-individual/12-vroom-expectancy/tests/conftest.py +5 -0
- valanistack-0.1.0/module-1-individual/12-vroom-expectancy/tests/test_vroom_expectancy.py +275 -0
- valanistack-0.1.0/module-1-individual/12-vroom-expectancy/tests/test_vroom_v2.py +462 -0
- valanistack-0.1.0/module-2-team/13-grpi-working-agreement/README.md +124 -0
- valanistack-0.1.0/module-2-team/13-grpi-working-agreement/demo/01_self_contained_demo.py +228 -0
- valanistack-0.1.0/module-2-team/13-grpi-working-agreement/essay.md +58 -0
- valanistack-0.1.0/module-2-team/13-grpi-working-agreement/eval/run_benchmark.py +177 -0
- valanistack-0.1.0/module-2-team/13-grpi-working-agreement/eval/synthetic_grpi_requests.yaml +91 -0
- valanistack-0.1.0/module-2-team/13-grpi-working-agreement/lib/CITATIONS.md +76 -0
- valanistack-0.1.0/module-2-team/13-grpi-working-agreement/lib/__init__.py +172 -0
- valanistack-0.1.0/module-2-team/13-grpi-working-agreement/lib/_calibration.py +75 -0
- valanistack-0.1.0/module-2-team/13-grpi-working-agreement/lib/_composition.py +88 -0
- valanistack-0.1.0/module-2-team/13-grpi-working-agreement/lib/_playbooks.py +203 -0
- valanistack-0.1.0/module-2-team/13-grpi-working-agreement/lib/cli.py +199 -0
- valanistack-0.1.0/module-2-team/13-grpi-working-agreement/lib/generator.py +759 -0
- valanistack-0.1.0/module-2-team/13-grpi-working-agreement/lib/prompts.py +160 -0
- valanistack-0.1.0/module-2-team/13-grpi-working-agreement/lib/schema.py +473 -0
- valanistack-0.1.0/module-2-team/13-grpi-working-agreement/tests/conftest.py +5 -0
- valanistack-0.1.0/module-2-team/13-grpi-working-agreement/tests/test_grpi.py +268 -0
- valanistack-0.1.0/module-2-team/13-grpi-working-agreement/tests/test_grpi_v2.py +328 -0
- valanistack-0.1.0/module-2-team/14-process-gain-loss-detector/README.md +114 -0
- valanistack-0.1.0/module-2-team/14-process-gain-loss-detector/demo/01_self_contained_demo.py +282 -0
- valanistack-0.1.0/module-2-team/14-process-gain-loss-detector/essay.md +96 -0
- valanistack-0.1.0/module-2-team/14-process-gain-loss-detector/eval/run_benchmark.py +165 -0
- valanistack-0.1.0/module-2-team/14-process-gain-loss-detector/eval/synthetic_process_failures.yaml +167 -0
- valanistack-0.1.0/module-2-team/14-process-gain-loss-detector/lib/CITATIONS.md +31 -0
- valanistack-0.1.0/module-2-team/14-process-gain-loss-detector/lib/__init__.py +125 -0
- valanistack-0.1.0/module-2-team/14-process-gain-loss-detector/lib/_calibration.py +75 -0
- valanistack-0.1.0/module-2-team/14-process-gain-loss-detector/lib/_composition.py +82 -0
- valanistack-0.1.0/module-2-team/14-process-gain-loss-detector/lib/_playbooks.py +211 -0
- valanistack-0.1.0/module-2-team/14-process-gain-loss-detector/lib/cli.py +264 -0
- valanistack-0.1.0/module-2-team/14-process-gain-loss-detector/lib/generator.py +703 -0
- valanistack-0.1.0/module-2-team/14-process-gain-loss-detector/lib/prompts.py +158 -0
- valanistack-0.1.0/module-2-team/14-process-gain-loss-detector/lib/schema.py +425 -0
- valanistack-0.1.0/module-2-team/14-process-gain-loss-detector/tests/conftest.py +5 -0
- valanistack-0.1.0/module-2-team/14-process-gain-loss-detector/tests/test_process_gain_loss.py +237 -0
- valanistack-0.1.0/module-2-team/14-process-gain-loss-detector/tests/test_process_gain_loss_v2.py +332 -0
- valanistack-0.1.0/module-2-team/15-social-loafing-detector/README.md +99 -0
- valanistack-0.1.0/module-2-team/15-social-loafing-detector/demo/01_self_contained_demo.py +314 -0
- valanistack-0.1.0/module-2-team/15-social-loafing-detector/essay.md +75 -0
- valanistack-0.1.0/module-2-team/15-social-loafing-detector/eval/run_benchmark.py +144 -0
- valanistack-0.1.0/module-2-team/15-social-loafing-detector/eval/synthetic_loafing_failures.yaml +127 -0
- valanistack-0.1.0/module-2-team/15-social-loafing-detector/lib/CITATIONS.md +11 -0
- valanistack-0.1.0/module-2-team/15-social-loafing-detector/lib/__init__.py +110 -0
- valanistack-0.1.0/module-2-team/15-social-loafing-detector/lib/_calibration.py +73 -0
- valanistack-0.1.0/module-2-team/15-social-loafing-detector/lib/_composition.py +84 -0
- valanistack-0.1.0/module-2-team/15-social-loafing-detector/lib/_playbooks.py +206 -0
- valanistack-0.1.0/module-2-team/15-social-loafing-detector/lib/cli.py +249 -0
- valanistack-0.1.0/module-2-team/15-social-loafing-detector/lib/generator.py +697 -0
- valanistack-0.1.0/module-2-team/15-social-loafing-detector/lib/prompts.py +154 -0
- valanistack-0.1.0/module-2-team/15-social-loafing-detector/lib/schema.py +340 -0
- valanistack-0.1.0/module-2-team/15-social-loafing-detector/tests/conftest.py +5 -0
- valanistack-0.1.0/module-2-team/15-social-loafing-detector/tests/test_social_loafing.py +291 -0
- valanistack-0.1.0/module-2-team/15-social-loafing-detector/tests/test_social_loafing_v2.py +307 -0
- valanistack-0.1.0/module-2-team/16-heffernan-superflocks-detector/README.md +118 -0
- valanistack-0.1.0/module-2-team/16-heffernan-superflocks-detector/demo/01_self_contained_demo.py +251 -0
- valanistack-0.1.0/module-2-team/16-heffernan-superflocks-detector/essay.md +83 -0
- valanistack-0.1.0/module-2-team/16-heffernan-superflocks-detector/eval/run_benchmark.py +155 -0
- valanistack-0.1.0/module-2-team/16-heffernan-superflocks-detector/eval/synthetic_routing_traces.yaml +185 -0
- valanistack-0.1.0/module-2-team/16-heffernan-superflocks-detector/lib/CITATIONS.md +10 -0
- valanistack-0.1.0/module-2-team/16-heffernan-superflocks-detector/lib/__init__.py +115 -0
- valanistack-0.1.0/module-2-team/16-heffernan-superflocks-detector/lib/_calibration.py +73 -0
- valanistack-0.1.0/module-2-team/16-heffernan-superflocks-detector/lib/_composition.py +76 -0
- valanistack-0.1.0/module-2-team/16-heffernan-superflocks-detector/lib/_playbooks.py +202 -0
- valanistack-0.1.0/module-2-team/16-heffernan-superflocks-detector/lib/cli.py +240 -0
- valanistack-0.1.0/module-2-team/16-heffernan-superflocks-detector/lib/generator.py +791 -0
- valanistack-0.1.0/module-2-team/16-heffernan-superflocks-detector/lib/prompts.py +138 -0
- valanistack-0.1.0/module-2-team/16-heffernan-superflocks-detector/lib/schema.py +327 -0
- valanistack-0.1.0/module-2-team/16-heffernan-superflocks-detector/tests/conftest.py +5 -0
- valanistack-0.1.0/module-2-team/16-heffernan-superflocks-detector/tests/test_superflocks.py +292 -0
- valanistack-0.1.0/module-2-team/16-heffernan-superflocks-detector/tests/test_superflocks_v2.py +339 -0
- valanistack-0.1.0/module-2-team/17-lencioni-diagnostic/README.md +123 -0
- valanistack-0.1.0/module-2-team/17-lencioni-diagnostic/demo/01_self_contained_demo.py +262 -0
- valanistack-0.1.0/module-2-team/17-lencioni-diagnostic/essay.md +97 -0
- valanistack-0.1.0/module-2-team/17-lencioni-diagnostic/eval/run_benchmark.py +171 -0
- valanistack-0.1.0/module-2-team/17-lencioni-diagnostic/eval/synthetic_multiagent_failures.yaml +151 -0
- valanistack-0.1.0/module-2-team/17-lencioni-diagnostic/lib/CITATIONS.md +73 -0
- valanistack-0.1.0/module-2-team/17-lencioni-diagnostic/lib/__init__.py +134 -0
- valanistack-0.1.0/module-2-team/17-lencioni-diagnostic/lib/_calibration.py +77 -0
- valanistack-0.1.0/module-2-team/17-lencioni-diagnostic/lib/_composition.py +84 -0
- valanistack-0.1.0/module-2-team/17-lencioni-diagnostic/lib/_playbooks.py +202 -0
- valanistack-0.1.0/module-2-team/17-lencioni-diagnostic/lib/cli.py +241 -0
- valanistack-0.1.0/module-2-team/17-lencioni-diagnostic/lib/generator.py +750 -0
- valanistack-0.1.0/module-2-team/17-lencioni-diagnostic/lib/prompts.py +154 -0
- valanistack-0.1.0/module-2-team/17-lencioni-diagnostic/lib/schema.py +370 -0
- valanistack-0.1.0/module-2-team/17-lencioni-diagnostic/tests/conftest.py +5 -0
- valanistack-0.1.0/module-2-team/17-lencioni-diagnostic/tests/test_lencioni.py +260 -0
- valanistack-0.1.0/module-2-team/17-lencioni-diagnostic/tests/test_lencioni_v2.py +378 -0
- valanistack-0.1.0/module-2-team/18-trust-triangle-audit/README.md +134 -0
- valanistack-0.1.0/module-2-team/18-trust-triangle-audit/demo/01_self_contained_demo.py +202 -0
- valanistack-0.1.0/module-2-team/18-trust-triangle-audit/essay.md +86 -0
- valanistack-0.1.0/module-2-team/18-trust-triangle-audit/eval/run_benchmark.py +160 -0
- valanistack-0.1.0/module-2-team/18-trust-triangle-audit/eval/synthetic_trust_failures.yaml +153 -0
- valanistack-0.1.0/module-2-team/18-trust-triangle-audit/lib/CITATIONS.md +51 -0
- valanistack-0.1.0/module-2-team/18-trust-triangle-audit/lib/__init__.py +120 -0
- valanistack-0.1.0/module-2-team/18-trust-triangle-audit/lib/_calibration.py +77 -0
- valanistack-0.1.0/module-2-team/18-trust-triangle-audit/lib/_composition.py +93 -0
- valanistack-0.1.0/module-2-team/18-trust-triangle-audit/lib/_playbooks.py +202 -0
- valanistack-0.1.0/module-2-team/18-trust-triangle-audit/lib/cli.py +241 -0
- valanistack-0.1.0/module-2-team/18-trust-triangle-audit/lib/generator.py +779 -0
- valanistack-0.1.0/module-2-team/18-trust-triangle-audit/lib/prompts.py +179 -0
- valanistack-0.1.0/module-2-team/18-trust-triangle-audit/lib/schema.py +359 -0
- valanistack-0.1.0/module-2-team/18-trust-triangle-audit/tests/conftest.py +5 -0
- valanistack-0.1.0/module-2-team/18-trust-triangle-audit/tests/test_trust_triangle.py +232 -0
- valanistack-0.1.0/module-2-team/18-trust-triangle-audit/tests/test_trust_triangle_v2.py +378 -0
- valanistack-0.1.0/module-2-team/19-mcallister-trust-dimensions/README.md +101 -0
- valanistack-0.1.0/module-2-team/19-mcallister-trust-dimensions/demo/01_self_contained_demo.py +220 -0
- valanistack-0.1.0/module-2-team/19-mcallister-trust-dimensions/essay.md +80 -0
- valanistack-0.1.0/module-2-team/19-mcallister-trust-dimensions/eval/run_benchmark.py +137 -0
- valanistack-0.1.0/module-2-team/19-mcallister-trust-dimensions/eval/synthetic_trust_failures.yaml +120 -0
- valanistack-0.1.0/module-2-team/19-mcallister-trust-dimensions/lib/CITATIONS.md +34 -0
- valanistack-0.1.0/module-2-team/19-mcallister-trust-dimensions/lib/__init__.py +115 -0
- valanistack-0.1.0/module-2-team/19-mcallister-trust-dimensions/lib/_calibration.py +77 -0
- valanistack-0.1.0/module-2-team/19-mcallister-trust-dimensions/lib/_composition.py +86 -0
- valanistack-0.1.0/module-2-team/19-mcallister-trust-dimensions/lib/_playbooks.py +200 -0
- valanistack-0.1.0/module-2-team/19-mcallister-trust-dimensions/lib/cli.py +241 -0
- valanistack-0.1.0/module-2-team/19-mcallister-trust-dimensions/lib/generator.py +753 -0
- valanistack-0.1.0/module-2-team/19-mcallister-trust-dimensions/lib/prompts.py +169 -0
- valanistack-0.1.0/module-2-team/19-mcallister-trust-dimensions/lib/schema.py +352 -0
- valanistack-0.1.0/module-2-team/19-mcallister-trust-dimensions/tests/conftest.py +5 -0
- valanistack-0.1.0/module-2-team/19-mcallister-trust-dimensions/tests/test_mcallister_trust.py +196 -0
- valanistack-0.1.0/module-2-team/19-mcallister-trust-dimensions/tests/test_mcallister_v2.py +348 -0
- valanistack-0.1.0/module-2-team/20-edmondson-psych-safety/README.md +100 -0
- valanistack-0.1.0/module-2-team/20-edmondson-psych-safety/demo/01_self_contained_demo.py +178 -0
- valanistack-0.1.0/module-2-team/20-edmondson-psych-safety/essay.md +60 -0
- valanistack-0.1.0/module-2-team/20-edmondson-psych-safety/eval/run_benchmark.py +143 -0
- valanistack-0.1.0/module-2-team/20-edmondson-psych-safety/eval/synthetic_safety_failures.yaml +90 -0
- valanistack-0.1.0/module-2-team/20-edmondson-psych-safety/lib/CITATIONS.md +31 -0
- valanistack-0.1.0/module-2-team/20-edmondson-psych-safety/lib/__init__.py +116 -0
- valanistack-0.1.0/module-2-team/20-edmondson-psych-safety/lib/_calibration.py +78 -0
- valanistack-0.1.0/module-2-team/20-edmondson-psych-safety/lib/_composition.py +99 -0
- valanistack-0.1.0/module-2-team/20-edmondson-psych-safety/lib/_playbooks.py +202 -0
- valanistack-0.1.0/module-2-team/20-edmondson-psych-safety/lib/cli.py +241 -0
- valanistack-0.1.0/module-2-team/20-edmondson-psych-safety/lib/generator.py +722 -0
- valanistack-0.1.0/module-2-team/20-edmondson-psych-safety/lib/prompts.py +163 -0
- valanistack-0.1.0/module-2-team/20-edmondson-psych-safety/lib/schema.py +356 -0
- valanistack-0.1.0/module-2-team/20-edmondson-psych-safety/tests/conftest.py +1 -0
- valanistack-0.1.0/module-2-team/20-edmondson-psych-safety/tests/test_psych_safety.py +202 -0
- valanistack-0.1.0/module-2-team/20-edmondson-psych-safety/tests/test_psych_safety_v2.py +366 -0
- valanistack-0.1.0/module-2-team/21-glaser-conversation-steering/README.md +96 -0
- valanistack-0.1.0/module-2-team/21-glaser-conversation-steering/demo/01_self_contained_demo.py +254 -0
- valanistack-0.1.0/module-2-team/21-glaser-conversation-steering/essay.md +87 -0
- valanistack-0.1.0/module-2-team/21-glaser-conversation-steering/eval/run_benchmark.py +136 -0
- valanistack-0.1.0/module-2-team/21-glaser-conversation-steering/eval/synthetic_conversations.yaml +165 -0
- valanistack-0.1.0/module-2-team/21-glaser-conversation-steering/lib/CITATIONS.md +31 -0
- valanistack-0.1.0/module-2-team/21-glaser-conversation-steering/lib/__init__.py +119 -0
- valanistack-0.1.0/module-2-team/21-glaser-conversation-steering/lib/_calibration.py +91 -0
- valanistack-0.1.0/module-2-team/21-glaser-conversation-steering/lib/_composition.py +92 -0
- valanistack-0.1.0/module-2-team/21-glaser-conversation-steering/lib/_playbooks.py +205 -0
- valanistack-0.1.0/module-2-team/21-glaser-conversation-steering/lib/cli.py +241 -0
- valanistack-0.1.0/module-2-team/21-glaser-conversation-steering/lib/generator.py +741 -0
- valanistack-0.1.0/module-2-team/21-glaser-conversation-steering/lib/prompts.py +169 -0
- valanistack-0.1.0/module-2-team/21-glaser-conversation-steering/lib/schema.py +348 -0
- valanistack-0.1.0/module-2-team/21-glaser-conversation-steering/tests/conftest.py +5 -0
- valanistack-0.1.0/module-2-team/21-glaser-conversation-steering/tests/test_glaser_conversation.py +242 -0
- valanistack-0.1.0/module-2-team/21-glaser-conversation-steering/tests/test_glaser_v2.py +350 -0
- valanistack-0.1.0/module-2-team/22-stone-heen-feedback-triggers/README.md +90 -0
- valanistack-0.1.0/module-2-team/22-stone-heen-feedback-triggers/demo/01_self_contained_demo.py +233 -0
- valanistack-0.1.0/module-2-team/22-stone-heen-feedback-triggers/essay.md +82 -0
- valanistack-0.1.0/module-2-team/22-stone-heen-feedback-triggers/eval/run_benchmark.py +155 -0
- valanistack-0.1.0/module-2-team/22-stone-heen-feedback-triggers/eval/synthetic_trigger_failures.yaml +109 -0
- valanistack-0.1.0/module-2-team/22-stone-heen-feedback-triggers/lib/CITATIONS.md +30 -0
- valanistack-0.1.0/module-2-team/22-stone-heen-feedback-triggers/lib/__init__.py +115 -0
- valanistack-0.1.0/module-2-team/22-stone-heen-feedback-triggers/lib/_calibration.py +77 -0
- valanistack-0.1.0/module-2-team/22-stone-heen-feedback-triggers/lib/_composition.py +96 -0
- valanistack-0.1.0/module-2-team/22-stone-heen-feedback-triggers/lib/_playbooks.py +198 -0
- valanistack-0.1.0/module-2-team/22-stone-heen-feedback-triggers/lib/cli.py +241 -0
- valanistack-0.1.0/module-2-team/22-stone-heen-feedback-triggers/lib/generator.py +714 -0
- valanistack-0.1.0/module-2-team/22-stone-heen-feedback-triggers/lib/prompts.py +155 -0
- valanistack-0.1.0/module-2-team/22-stone-heen-feedback-triggers/lib/schema.py +340 -0
- valanistack-0.1.0/module-2-team/22-stone-heen-feedback-triggers/tests/conftest.py +5 -0
- valanistack-0.1.0/module-2-team/22-stone-heen-feedback-triggers/tests/test_feedback_triggers.py +219 -0
- valanistack-0.1.0/module-2-team/22-stone-heen-feedback-triggers/tests/test_feedback_triggers_v2.py +349 -0
- valanistack-0.1.0/module-2-team/23-plus-delta-feedback-format/README.md +123 -0
- valanistack-0.1.0/module-2-team/23-plus-delta-feedback-format/demo/01_self_contained_demo.py +235 -0
- valanistack-0.1.0/module-2-team/23-plus-delta-feedback-format/essay.md +87 -0
- valanistack-0.1.0/module-2-team/23-plus-delta-feedback-format/eval/run_benchmark.py +142 -0
- valanistack-0.1.0/module-2-team/23-plus-delta-feedback-format/eval/synthetic_feedback_requests.yaml +112 -0
- valanistack-0.1.0/module-2-team/23-plus-delta-feedback-format/lib/CITATIONS.md +32 -0
- valanistack-0.1.0/module-2-team/23-plus-delta-feedback-format/lib/__init__.py +112 -0
- valanistack-0.1.0/module-2-team/23-plus-delta-feedback-format/lib/_calibration.py +82 -0
- valanistack-0.1.0/module-2-team/23-plus-delta-feedback-format/lib/_composition.py +95 -0
- valanistack-0.1.0/module-2-team/23-plus-delta-feedback-format/lib/_playbooks.py +200 -0
- valanistack-0.1.0/module-2-team/23-plus-delta-feedback-format/lib/cli.py +244 -0
- valanistack-0.1.0/module-2-team/23-plus-delta-feedback-format/lib/generator.py +680 -0
- valanistack-0.1.0/module-2-team/23-plus-delta-feedback-format/lib/prompts.py +158 -0
- valanistack-0.1.0/module-2-team/23-plus-delta-feedback-format/lib/schema.py +378 -0
- valanistack-0.1.0/module-2-team/23-plus-delta-feedback-format/tests/conftest.py +5 -0
- valanistack-0.1.0/module-2-team/23-plus-delta-feedback-format/tests/test_plus_delta.py +241 -0
- valanistack-0.1.0/module-2-team/23-plus-delta-feedback-format/tests/test_plus_delta_v2.py +354 -0
- valanistack-0.1.0/module-2-team/24-smart-goal-generator/README.md +93 -0
- valanistack-0.1.0/module-2-team/24-smart-goal-generator/demo/01_self_contained_demo.py +198 -0
- valanistack-0.1.0/module-2-team/24-smart-goal-generator/essay.md +76 -0
- valanistack-0.1.0/module-2-team/24-smart-goal-generator/eval/run_benchmark.py +138 -0
- valanistack-0.1.0/module-2-team/24-smart-goal-generator/eval/synthetic_smart_requests.yaml +80 -0
- valanistack-0.1.0/module-2-team/24-smart-goal-generator/lib/CITATIONS.md +30 -0
- valanistack-0.1.0/module-2-team/24-smart-goal-generator/lib/__init__.py +114 -0
- valanistack-0.1.0/module-2-team/24-smart-goal-generator/lib/_calibration.py +77 -0
- valanistack-0.1.0/module-2-team/24-smart-goal-generator/lib/_composition.py +91 -0
- valanistack-0.1.0/module-2-team/24-smart-goal-generator/lib/_playbooks.py +198 -0
- valanistack-0.1.0/module-2-team/24-smart-goal-generator/lib/cli.py +244 -0
- valanistack-0.1.0/module-2-team/24-smart-goal-generator/lib/generator.py +688 -0
- valanistack-0.1.0/module-2-team/24-smart-goal-generator/lib/prompts.py +139 -0
- valanistack-0.1.0/module-2-team/24-smart-goal-generator/lib/schema.py +386 -0
- valanistack-0.1.0/module-2-team/24-smart-goal-generator/tests/conftest.py +5 -0
- valanistack-0.1.0/module-2-team/24-smart-goal-generator/tests/test_smart_goal.py +230 -0
- valanistack-0.1.0/module-2-team/24-smart-goal-generator/tests/test_smart_goal_v2.py +362 -0
- valanistack-0.1.0/module-2-team/25-group-decision-models/README.md +121 -0
- valanistack-0.1.0/module-2-team/25-group-decision-models/demo/01_self_contained_demo.py +163 -0
- valanistack-0.1.0/module-2-team/25-group-decision-models/essay.md +95 -0
- valanistack-0.1.0/module-2-team/25-group-decision-models/eval/run_benchmark.py +145 -0
- valanistack-0.1.0/module-2-team/25-group-decision-models/eval/synthetic_decision_requests.yaml +119 -0
- valanistack-0.1.0/module-2-team/25-group-decision-models/lib/CITATIONS.md +29 -0
- valanistack-0.1.0/module-2-team/25-group-decision-models/lib/__init__.py +118 -0
- valanistack-0.1.0/module-2-team/25-group-decision-models/lib/_calibration.py +80 -0
- valanistack-0.1.0/module-2-team/25-group-decision-models/lib/_composition.py +82 -0
- valanistack-0.1.0/module-2-team/25-group-decision-models/lib/_playbooks.py +217 -0
- valanistack-0.1.0/module-2-team/25-group-decision-models/lib/cli.py +257 -0
- valanistack-0.1.0/module-2-team/25-group-decision-models/lib/generator.py +732 -0
- valanistack-0.1.0/module-2-team/25-group-decision-models/lib/prompts.py +146 -0
- valanistack-0.1.0/module-2-team/25-group-decision-models/lib/schema.py +403 -0
- valanistack-0.1.0/module-2-team/25-group-decision-models/lib/tally.py +323 -0
- valanistack-0.1.0/module-2-team/25-group-decision-models/tests/conftest.py +5 -0
- valanistack-0.1.0/module-2-team/25-group-decision-models/tests/test_group_decision.py +318 -0
- valanistack-0.1.0/module-2-team/25-group-decision-models/tests/test_group_decision_v2.py +338 -0
- valanistack-0.1.0/module-2-team/26-groupthink-polarization-contagion/README.md +100 -0
- valanistack-0.1.0/module-2-team/26-groupthink-polarization-contagion/demo/01_self_contained_demo.py +293 -0
- valanistack-0.1.0/module-2-team/26-groupthink-polarization-contagion/essay.md +82 -0
- valanistack-0.1.0/module-2-team/26-groupthink-polarization-contagion/eval/run_benchmark.py +158 -0
- valanistack-0.1.0/module-2-team/26-groupthink-polarization-contagion/eval/synthetic_debate_failures.yaml +143 -0
- valanistack-0.1.0/module-2-team/26-groupthink-polarization-contagion/lib/CITATIONS.md +45 -0
- valanistack-0.1.0/module-2-team/26-groupthink-polarization-contagion/lib/__init__.py +115 -0
- valanistack-0.1.0/module-2-team/26-groupthink-polarization-contagion/lib/_calibration.py +77 -0
- valanistack-0.1.0/module-2-team/26-groupthink-polarization-contagion/lib/_composition.py +99 -0
- valanistack-0.1.0/module-2-team/26-groupthink-polarization-contagion/lib/_playbooks.py +202 -0
- valanistack-0.1.0/module-2-team/26-groupthink-polarization-contagion/lib/cli.py +241 -0
- valanistack-0.1.0/module-2-team/26-groupthink-polarization-contagion/lib/generator.py +749 -0
- valanistack-0.1.0/module-2-team/26-groupthink-polarization-contagion/lib/prompts.py +155 -0
- valanistack-0.1.0/module-2-team/26-groupthink-polarization-contagion/lib/schema.py +359 -0
- valanistack-0.1.0/module-2-team/26-groupthink-polarization-contagion/tests/conftest.py +5 -0
- valanistack-0.1.0/module-2-team/26-groupthink-polarization-contagion/tests/test_debate_pathology.py +241 -0
- valanistack-0.1.0/module-2-team/26-groupthink-polarization-contagion/tests/test_debate_pathology_v2.py +346 -0
- valanistack-0.1.0/module-2-team/27-bias-stack-detector/README.md +108 -0
- valanistack-0.1.0/module-2-team/27-bias-stack-detector/demo/01_self_contained_demo.py +230 -0
- valanistack-0.1.0/module-2-team/27-bias-stack-detector/essay.md +50 -0
- valanistack-0.1.0/module-2-team/27-bias-stack-detector/eval/run_benchmark.py +153 -0
- valanistack-0.1.0/module-2-team/27-bias-stack-detector/eval/synthetic_bias_failures.yaml +117 -0
- valanistack-0.1.0/module-2-team/27-bias-stack-detector/lib/CITATIONS.md +39 -0
- valanistack-0.1.0/module-2-team/27-bias-stack-detector/lib/__init__.py +116 -0
- valanistack-0.1.0/module-2-team/27-bias-stack-detector/lib/_calibration.py +77 -0
- valanistack-0.1.0/module-2-team/27-bias-stack-detector/lib/_composition.py +99 -0
- valanistack-0.1.0/module-2-team/27-bias-stack-detector/lib/_playbooks.py +200 -0
- valanistack-0.1.0/module-2-team/27-bias-stack-detector/lib/cli.py +241 -0
- valanistack-0.1.0/module-2-team/27-bias-stack-detector/lib/generator.py +732 -0
- valanistack-0.1.0/module-2-team/27-bias-stack-detector/lib/prompts.py +155 -0
- valanistack-0.1.0/module-2-team/27-bias-stack-detector/lib/schema.py +360 -0
- valanistack-0.1.0/module-2-team/27-bias-stack-detector/tests/conftest.py +5 -0
- valanistack-0.1.0/module-2-team/27-bias-stack-detector/tests/test_bias_stack.py +218 -0
- valanistack-0.1.0/module-2-team/27-bias-stack-detector/tests/test_bias_stack_v2.py +365 -0
- valanistack-0.1.0/module-2-team/28-devils-advocate-separator/README.md +95 -0
- valanistack-0.1.0/module-2-team/28-devils-advocate-separator/demo/01_self_contained_demo.py +235 -0
- valanistack-0.1.0/module-2-team/28-devils-advocate-separator/essay.md +78 -0
- valanistack-0.1.0/module-2-team/28-devils-advocate-separator/eval/run_benchmark.py +143 -0
- valanistack-0.1.0/module-2-team/28-devils-advocate-separator/eval/synthetic_role_failures.yaml +117 -0
- valanistack-0.1.0/module-2-team/28-devils-advocate-separator/lib/CITATIONS.md +32 -0
- valanistack-0.1.0/module-2-team/28-devils-advocate-separator/lib/__init__.py +116 -0
- valanistack-0.1.0/module-2-team/28-devils-advocate-separator/lib/_calibration.py +78 -0
- valanistack-0.1.0/module-2-team/28-devils-advocate-separator/lib/_composition.py +99 -0
- valanistack-0.1.0/module-2-team/28-devils-advocate-separator/lib/_playbooks.py +198 -0
- valanistack-0.1.0/module-2-team/28-devils-advocate-separator/lib/cli.py +241 -0
- valanistack-0.1.0/module-2-team/28-devils-advocate-separator/lib/generator.py +785 -0
- valanistack-0.1.0/module-2-team/28-devils-advocate-separator/lib/prompts.py +156 -0
- valanistack-0.1.0/module-2-team/28-devils-advocate-separator/lib/schema.py +350 -0
- valanistack-0.1.0/module-2-team/28-devils-advocate-separator/tests/conftest.py +5 -0
- valanistack-0.1.0/module-2-team/28-devils-advocate-separator/tests/test_devils_advocate.py +214 -0
- valanistack-0.1.0/module-2-team/28-devils-advocate-separator/tests/test_devils_advocate_v2.py +398 -0
- valanistack-0.1.0/module-2-team/29-thomas-kilmann-selector/README.md +107 -0
- valanistack-0.1.0/module-2-team/29-thomas-kilmann-selector/demo/01_self_contained_demo.py +176 -0
- valanistack-0.1.0/module-2-team/29-thomas-kilmann-selector/essay.md +60 -0
- valanistack-0.1.0/module-2-team/29-thomas-kilmann-selector/eval/run_benchmark.py +134 -0
- valanistack-0.1.0/module-2-team/29-thomas-kilmann-selector/eval/synthetic_style_mismatches.yaml +107 -0
- valanistack-0.1.0/module-2-team/29-thomas-kilmann-selector/lib/CITATIONS.md +29 -0
- valanistack-0.1.0/module-2-team/29-thomas-kilmann-selector/lib/__init__.py +115 -0
- valanistack-0.1.0/module-2-team/29-thomas-kilmann-selector/lib/_calibration.py +82 -0
- valanistack-0.1.0/module-2-team/29-thomas-kilmann-selector/lib/_composition.py +98 -0
- valanistack-0.1.0/module-2-team/29-thomas-kilmann-selector/lib/_playbooks.py +195 -0
- valanistack-0.1.0/module-2-team/29-thomas-kilmann-selector/lib/cli.py +241 -0
- valanistack-0.1.0/module-2-team/29-thomas-kilmann-selector/lib/generator.py +755 -0
- valanistack-0.1.0/module-2-team/29-thomas-kilmann-selector/lib/prompts.py +162 -0
- valanistack-0.1.0/module-2-team/29-thomas-kilmann-selector/lib/schema.py +353 -0
- valanistack-0.1.0/module-2-team/29-thomas-kilmann-selector/tests/conftest.py +1 -0
- valanistack-0.1.0/module-2-team/29-thomas-kilmann-selector/tests/test_thomas_kilmann.py +184 -0
- valanistack-0.1.0/module-2-team/29-thomas-kilmann-selector/tests/test_thomas_kilmann_v2.py +361 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/README.md +141 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/demo/01_self_contained_demo.py +265 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/demo/README.md +26 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/essay.md +107 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/eval/README.md +41 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/eval/run_benchmark.py +194 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/eval/synthetic_failures.yaml +218 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/lib/PYTHON_NOTES.md +19 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/lib/__init__.py +168 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/lib/_analyzer.py +501 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/lib/_calibration.py +75 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/lib/_composition.py +95 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/lib/_guards.py +136 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/lib/_json_parsing.py +71 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/lib/_logging.py +208 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/lib/_playbooks.py +198 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/lib/_retry.py +109 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/lib/_telemetry.py +189 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/lib/cli.py +220 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/lib/clients.py +372 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/lib/generator.py +297 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/lib/prompts.py +101 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/lib/schema.py +330 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/tests/__init__.py +0 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/tests/conftest.py +5 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/tests/test_aar_v2.py +306 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/tests/test_cli.py +125 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/tests/test_edge_cases.py +210 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/tests/test_generator_flow.py +130 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/tests/test_schema.py +144 -0
- valanistack-0.1.0/module-2-team/30-aar-generator/tests/test_shared_infra.py +346 -0
- valanistack-0.1.0/module-3-organization/31-schein-iceberg-culture/README.md +113 -0
- valanistack-0.1.0/module-3-organization/31-schein-iceberg-culture/demo/01_self_contained_demo.py +218 -0
- valanistack-0.1.0/module-3-organization/31-schein-iceberg-culture/essay.md +88 -0
- valanistack-0.1.0/module-3-organization/31-schein-iceberg-culture/eval/run_benchmark.py +134 -0
- valanistack-0.1.0/module-3-organization/31-schein-iceberg-culture/eval/synthetic_culture_failures.yaml +115 -0
- valanistack-0.1.0/module-3-organization/31-schein-iceberg-culture/lib/CITATIONS.md +31 -0
- valanistack-0.1.0/module-3-organization/31-schein-iceberg-culture/lib/__init__.py +116 -0
- valanistack-0.1.0/module-3-organization/31-schein-iceberg-culture/lib/_calibration.py +79 -0
- valanistack-0.1.0/module-3-organization/31-schein-iceberg-culture/lib/_composition.py +95 -0
- valanistack-0.1.0/module-3-organization/31-schein-iceberg-culture/lib/_playbooks.py +199 -0
- valanistack-0.1.0/module-3-organization/31-schein-iceberg-culture/lib/cli.py +241 -0
- valanistack-0.1.0/module-3-organization/31-schein-iceberg-culture/lib/generator.py +715 -0
- valanistack-0.1.0/module-3-organization/31-schein-iceberg-culture/lib/prompts.py +164 -0
- valanistack-0.1.0/module-3-organization/31-schein-iceberg-culture/lib/schema.py +358 -0
- valanistack-0.1.0/module-3-organization/31-schein-iceberg-culture/tests/conftest.py +5 -0
- valanistack-0.1.0/module-3-organization/31-schein-iceberg-culture/tests/test_schein_culture.py +210 -0
- valanistack-0.1.0/module-3-organization/31-schein-iceberg-culture/tests/test_schein_culture_v2.py +334 -0
- valanistack-0.1.0/module-3-organization/32-robbins-judge-7-culture/README.md +105 -0
- valanistack-0.1.0/module-3-organization/32-robbins-judge-7-culture/demo/01_self_contained_demo.py +240 -0
- valanistack-0.1.0/module-3-organization/32-robbins-judge-7-culture/essay.md +92 -0
- valanistack-0.1.0/module-3-organization/32-robbins-judge-7-culture/eval/run_benchmark.py +134 -0
- valanistack-0.1.0/module-3-organization/32-robbins-judge-7-culture/eval/synthetic_culture_profiles.yaml +106 -0
- valanistack-0.1.0/module-3-organization/32-robbins-judge-7-culture/lib/CITATIONS.md +29 -0
- valanistack-0.1.0/module-3-organization/32-robbins-judge-7-culture/lib/__init__.py +128 -0
- valanistack-0.1.0/module-3-organization/32-robbins-judge-7-culture/lib/_calibration.py +70 -0
- valanistack-0.1.0/module-3-organization/32-robbins-judge-7-culture/lib/_composition.py +131 -0
- valanistack-0.1.0/module-3-organization/32-robbins-judge-7-culture/lib/_playbooks.py +225 -0
- valanistack-0.1.0/module-3-organization/32-robbins-judge-7-culture/lib/cli.py +241 -0
- valanistack-0.1.0/module-3-organization/32-robbins-judge-7-culture/lib/generator.py +758 -0
- valanistack-0.1.0/module-3-organization/32-robbins-judge-7-culture/lib/prompts.py +260 -0
- valanistack-0.1.0/module-3-organization/32-robbins-judge-7-culture/lib/schema.py +471 -0
- valanistack-0.1.0/module-3-organization/32-robbins-judge-7-culture/tests/conftest.py +5 -0
- valanistack-0.1.0/module-3-organization/32-robbins-judge-7-culture/tests/test_robbins_culture.py +229 -0
- valanistack-0.1.0/module-3-organization/32-robbins-judge-7-culture/tests/test_robbins_culture_v2.py +367 -0
- valanistack-0.1.0/module-3-organization/33-org-structure-matrix/README.md +94 -0
- valanistack-0.1.0/module-3-organization/33-org-structure-matrix/demo/01_self_contained_demo.py +256 -0
- valanistack-0.1.0/module-3-organization/33-org-structure-matrix/essay.md +84 -0
- valanistack-0.1.0/module-3-organization/33-org-structure-matrix/eval/run_benchmark.py +136 -0
- valanistack-0.1.0/module-3-organization/33-org-structure-matrix/eval/synthetic_structures.yaml +224 -0
- valanistack-0.1.0/module-3-organization/33-org-structure-matrix/lib/CITATIONS.md +35 -0
- valanistack-0.1.0/module-3-organization/33-org-structure-matrix/lib/__init__.py +138 -0
- valanistack-0.1.0/module-3-organization/33-org-structure-matrix/lib/_calibration.py +68 -0
- valanistack-0.1.0/module-3-organization/33-org-structure-matrix/lib/_composition.py +123 -0
- valanistack-0.1.0/module-3-organization/33-org-structure-matrix/lib/_playbooks.py +209 -0
- valanistack-0.1.0/module-3-organization/33-org-structure-matrix/lib/cli.py +241 -0
- valanistack-0.1.0/module-3-organization/33-org-structure-matrix/lib/generator.py +806 -0
- valanistack-0.1.0/module-3-organization/33-org-structure-matrix/lib/prompts.py +253 -0
- valanistack-0.1.0/module-3-organization/33-org-structure-matrix/lib/schema.py +490 -0
- valanistack-0.1.0/module-3-organization/33-org-structure-matrix/tests/conftest.py +5 -0
- valanistack-0.1.0/module-3-organization/33-org-structure-matrix/tests/test_org_structure.py +249 -0
- valanistack-0.1.0/module-3-organization/33-org-structure-matrix/tests/test_org_structure_v2.py +368 -0
- valanistack-0.1.0/module-3-organization/34-span-of-control/README.md +89 -0
- valanistack-0.1.0/module-3-organization/34-span-of-control/demo/01_self_contained_demo.py +173 -0
- valanistack-0.1.0/module-3-organization/34-span-of-control/essay.md +99 -0
- valanistack-0.1.0/module-3-organization/34-span-of-control/eval/run_benchmark.py +138 -0
- valanistack-0.1.0/module-3-organization/34-span-of-control/eval/synthetic_span_traces.yaml +165 -0
- valanistack-0.1.0/module-3-organization/34-span-of-control/lib/CITATIONS.md +34 -0
- valanistack-0.1.0/module-3-organization/34-span-of-control/lib/__init__.py +167 -0
- valanistack-0.1.0/module-3-organization/34-span-of-control/lib/_calibration.py +70 -0
- valanistack-0.1.0/module-3-organization/34-span-of-control/lib/_composition.py +108 -0
- valanistack-0.1.0/module-3-organization/34-span-of-control/lib/_playbooks.py +204 -0
- valanistack-0.1.0/module-3-organization/34-span-of-control/lib/cli.py +241 -0
- valanistack-0.1.0/module-3-organization/34-span-of-control/lib/generator.py +647 -0
- valanistack-0.1.0/module-3-organization/34-span-of-control/lib/metrics.py +378 -0
- valanistack-0.1.0/module-3-organization/34-span-of-control/lib/prompts.py +160 -0
- valanistack-0.1.0/module-3-organization/34-span-of-control/lib/schema.py +438 -0
- valanistack-0.1.0/module-3-organization/34-span-of-control/tests/conftest.py +5 -0
- valanistack-0.1.0/module-3-organization/34-span-of-control/tests/test_span_of_control.py +275 -0
- valanistack-0.1.0/module-3-organization/34-span-of-control/tests/test_span_of_control_v2.py +310 -0
- valanistack-0.1.0/pyproject.toml +238 -0
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
concurrency:
|
|
13
|
+
group: ci-${{ github.ref }}
|
|
14
|
+
cancel-in-progress: true
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
test:
|
|
18
|
+
name: Test (Python ${{ matrix.python-version }} on ${{ matrix.os }})
|
|
19
|
+
runs-on: ${{ matrix.os }}
|
|
20
|
+
strategy:
|
|
21
|
+
fail-fast: false
|
|
22
|
+
matrix:
|
|
23
|
+
os: [ubuntu-latest, macos-latest]
|
|
24
|
+
python-version: ["3.11", "3.12", "3.13"]
|
|
25
|
+
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@v4
|
|
28
|
+
|
|
29
|
+
- name: Set up Python
|
|
30
|
+
uses: actions/setup-python@v5
|
|
31
|
+
with:
|
|
32
|
+
python-version: ${{ matrix.python-version }}
|
|
33
|
+
cache: pip
|
|
34
|
+
|
|
35
|
+
- name: Install package + test deps
|
|
36
|
+
run: |
|
|
37
|
+
python -m pip install --upgrade pip
|
|
38
|
+
python -m pip install -e .
|
|
39
|
+
python -m pip install pytest pytest-cov pyyaml
|
|
40
|
+
|
|
41
|
+
- name: Run tests (all patterns, with coverage)
|
|
42
|
+
run: |
|
|
43
|
+
pytest module-1-individual/ module-2-team/ module-3-organization/ \
|
|
44
|
+
-v --tb=short \
|
|
45
|
+
--cov=vstack \
|
|
46
|
+
--cov-report=term-missing \
|
|
47
|
+
--cov-report=xml
|
|
48
|
+
|
|
49
|
+
- name: Upload coverage artifact
|
|
50
|
+
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13'
|
|
51
|
+
uses: actions/upload-artifact@v4
|
|
52
|
+
with:
|
|
53
|
+
name: coverage-xml
|
|
54
|
+
path: coverage.xml
|
|
55
|
+
retention-days: 14
|
|
56
|
+
|
|
57
|
+
lint:
|
|
58
|
+
name: Lint (ruff)
|
|
59
|
+
runs-on: ubuntu-latest
|
|
60
|
+
steps:
|
|
61
|
+
- uses: actions/checkout@v4
|
|
62
|
+
|
|
63
|
+
- name: Set up Python
|
|
64
|
+
uses: actions/setup-python@v5
|
|
65
|
+
with:
|
|
66
|
+
python-version: "3.13"
|
|
67
|
+
cache: pip
|
|
68
|
+
|
|
69
|
+
- name: Install ruff
|
|
70
|
+
run: python -m pip install ruff
|
|
71
|
+
|
|
72
|
+
- name: Run ruff check
|
|
73
|
+
run: ruff check module-1-individual/ module-2-team/ module-3-organization/
|
|
74
|
+
|
|
75
|
+
- name: Run ruff format check
|
|
76
|
+
run: ruff format --check module-1-individual/ module-2-team/ module-3-organization/
|
|
77
|
+
|
|
78
|
+
typecheck:
|
|
79
|
+
name: Typecheck (mypy)
|
|
80
|
+
runs-on: ubuntu-latest
|
|
81
|
+
steps:
|
|
82
|
+
- uses: actions/checkout@v4
|
|
83
|
+
|
|
84
|
+
- name: Set up Python
|
|
85
|
+
uses: actions/setup-python@v5
|
|
86
|
+
with:
|
|
87
|
+
python-version: "3.13"
|
|
88
|
+
cache: pip
|
|
89
|
+
|
|
90
|
+
- name: Install mypy and dependencies
|
|
91
|
+
run: |
|
|
92
|
+
python -m pip install mypy pydantic
|
|
93
|
+
python -m pip install -e .
|
|
94
|
+
|
|
95
|
+
- name: Run mypy per-pattern
|
|
96
|
+
# Each pattern's lib is its own logical package (via pyproject's
|
|
97
|
+
# force-include mapping). Running mypy across all patterns at once
|
|
98
|
+
# produces a 'Duplicate module named "lib"' error; running each
|
|
99
|
+
# pattern's lib separately avoids that and gives clearer per-pattern
|
|
100
|
+
# output. New patterns add another line here.
|
|
101
|
+
run: |
|
|
102
|
+
set -e
|
|
103
|
+
for pattern in \
|
|
104
|
+
module-2-team/30-aar-generator \
|
|
105
|
+
module-2-team/17-lencioni-diagnostic \
|
|
106
|
+
module-2-team/18-trust-triangle-audit \
|
|
107
|
+
module-1-individual/03-johari-window \
|
|
108
|
+
module-2-team/13-grpi-working-agreement \
|
|
109
|
+
module-2-team/27-bias-stack-detector \
|
|
110
|
+
module-2-team/20-edmondson-psych-safety \
|
|
111
|
+
module-2-team/29-thomas-kilmann-selector \
|
|
112
|
+
module-2-team/22-stone-heen-feedback-triggers \
|
|
113
|
+
module-2-team/28-devils-advocate-separator \
|
|
114
|
+
module-1-individual/01-lewin-formula \
|
|
115
|
+
module-2-team/19-mcallister-trust-dimensions \
|
|
116
|
+
module-2-team/15-social-loafing-detector \
|
|
117
|
+
module-2-team/26-groupthink-polarization-contagion \
|
|
118
|
+
module-2-team/14-process-gain-loss-detector \
|
|
119
|
+
module-2-team/24-smart-goal-generator \
|
|
120
|
+
module-1-individual/11-mcgregor-orchestrator-mode \
|
|
121
|
+
module-2-team/25-group-decision-models \
|
|
122
|
+
module-3-organization/31-schein-iceberg-culture \
|
|
123
|
+
module-1-individual/08-grant-strengths-as-weaknesses \
|
|
124
|
+
module-2-team/23-plus-delta-feedback-format \
|
|
125
|
+
module-3-organization/32-robbins-judge-7-culture \
|
|
126
|
+
module-2-team/16-heffernan-superflocks-detector \
|
|
127
|
+
module-1-individual/06-yerkes-dodson-workload \
|
|
128
|
+
module-3-organization/33-org-structure-matrix \
|
|
129
|
+
module-1-individual/09-motivation-traps \
|
|
130
|
+
module-2-team/21-glaser-conversation-steering \
|
|
131
|
+
module-1-individual/02-goleman-ei-audit \
|
|
132
|
+
module-1-individual/10-sdt-intrinsic-reward \
|
|
133
|
+
module-3-organization/34-span-of-control \
|
|
134
|
+
module-1-individual/04-danva-emotion-reader \
|
|
135
|
+
module-1-individual/05-cognitive-reappraisal \
|
|
136
|
+
module-1-individual/07-hexaco-personality \
|
|
137
|
+
module-1-individual/12-vroom-expectancy; do
|
|
138
|
+
echo "=== mypy: $pattern ==="
|
|
139
|
+
mypy "$pattern/lib" --strict --ignore-missing-imports
|
|
140
|
+
done
|
|
141
|
+
|
|
142
|
+
security:
|
|
143
|
+
name: Security (bandit + pip-audit)
|
|
144
|
+
runs-on: ubuntu-latest
|
|
145
|
+
steps:
|
|
146
|
+
- uses: actions/checkout@v4
|
|
147
|
+
|
|
148
|
+
- name: Set up Python
|
|
149
|
+
uses: actions/setup-python@v5
|
|
150
|
+
with:
|
|
151
|
+
python-version: "3.13"
|
|
152
|
+
cache: pip
|
|
153
|
+
|
|
154
|
+
- name: Install security tools
|
|
155
|
+
run: python -m pip install "bandit[toml]" pip-audit
|
|
156
|
+
|
|
157
|
+
- name: Run bandit (library code only)
|
|
158
|
+
# Tests and demos exercise the library deliberately, so they may
|
|
159
|
+
# trip rules that flag exec / subprocess / hardcoded "secrets" in
|
|
160
|
+
# canned fixtures. Scan only the shipping library code.
|
|
161
|
+
run: |
|
|
162
|
+
bandit -r \
|
|
163
|
+
module-1-individual/*/lib \
|
|
164
|
+
module-2-team/*/lib \
|
|
165
|
+
module-3-organization/*/lib \
|
|
166
|
+
-ll -ii -f txt
|
|
167
|
+
|
|
168
|
+
- name: Run pip-audit (declared deps)
|
|
169
|
+
# The library itself only pins pydantic + (optional) anthropic/openai.
|
|
170
|
+
# pip-audit on the installed environment catches transitive issues.
|
|
171
|
+
# We use --strict in the primary pass but fall through to a warn-only
|
|
172
|
+
# pass so a flaky transitive doesn't false-positive the entire matrix.
|
|
173
|
+
run: |
|
|
174
|
+
python -m pip install -e ".[all]"
|
|
175
|
+
pip-audit --strict --progress-spinner=off || pip-audit --progress-spinner=off
|
|
176
|
+
|
|
177
|
+
build:
|
|
178
|
+
name: Build wheel + sdist
|
|
179
|
+
runs-on: ubuntu-latest
|
|
180
|
+
steps:
|
|
181
|
+
- uses: actions/checkout@v4
|
|
182
|
+
|
|
183
|
+
- name: Set up Python
|
|
184
|
+
uses: actions/setup-python@v5
|
|
185
|
+
with:
|
|
186
|
+
python-version: "3.13"
|
|
187
|
+
cache: pip
|
|
188
|
+
|
|
189
|
+
- name: Install build
|
|
190
|
+
run: python -m pip install build
|
|
191
|
+
|
|
192
|
+
- name: Build
|
|
193
|
+
run: python -m build
|
|
194
|
+
|
|
195
|
+
- name: Verify wheel ships all 34 namespaces + py.typed marker
|
|
196
|
+
run: |
|
|
197
|
+
python -m pip install dist/valanistack-*-py3-none-any.whl
|
|
198
|
+
python -c "
|
|
199
|
+
import importlib, os
|
|
200
|
+
import vstack
|
|
201
|
+
assert vstack.__version__, 'top-level __version__ missing'
|
|
202
|
+
print(f'vstack v{vstack.__version__}')
|
|
203
|
+
assert os.path.exists(os.path.join(os.path.dirname(vstack.__file__), 'py.typed')), 'py.typed marker missing from wheel'
|
|
204
|
+
print('py.typed marker present')
|
|
205
|
+
namespaces = [
|
|
206
|
+
'vstack.aar',
|
|
207
|
+
'vstack.lencioni',
|
|
208
|
+
'vstack.trust_triangle',
|
|
209
|
+
'vstack.johari',
|
|
210
|
+
'vstack.grpi',
|
|
211
|
+
'vstack.bias_stack',
|
|
212
|
+
'vstack.psych_safety',
|
|
213
|
+
'vstack.thomas_kilmann',
|
|
214
|
+
'vstack.feedback_triggers',
|
|
215
|
+
'vstack.devils_advocate',
|
|
216
|
+
'vstack.lewin',
|
|
217
|
+
'vstack.mcallister_trust',
|
|
218
|
+
'vstack.social_loafing',
|
|
219
|
+
'vstack.debate_pathology',
|
|
220
|
+
'vstack.process_gain_loss',
|
|
221
|
+
'vstack.smart_goal',
|
|
222
|
+
'vstack.mcgregor',
|
|
223
|
+
'vstack.group_decision',
|
|
224
|
+
'vstack.schein_culture',
|
|
225
|
+
'vstack.grant_strengths',
|
|
226
|
+
'vstack.plus_delta',
|
|
227
|
+
'vstack.robbins_culture',
|
|
228
|
+
'vstack.superflocks',
|
|
229
|
+
'vstack.yerkes_dodson',
|
|
230
|
+
'vstack.org_structure',
|
|
231
|
+
'vstack.motivation_traps',
|
|
232
|
+
'vstack.glaser_conversation',
|
|
233
|
+
'vstack.goleman_ei',
|
|
234
|
+
'vstack.sdt_reward',
|
|
235
|
+
'vstack.span_of_control',
|
|
236
|
+
'vstack.danva_emotion',
|
|
237
|
+
'vstack.cognitive_reappraisal',
|
|
238
|
+
'vstack.hexaco',
|
|
239
|
+
'vstack.vroom_expectancy',
|
|
240
|
+
]
|
|
241
|
+
for ns in namespaces:
|
|
242
|
+
mod = importlib.import_module(ns)
|
|
243
|
+
assert hasattr(mod, '__all__'), f'{ns} missing __all__'
|
|
244
|
+
print(f'All {len(namespaces)} pattern namespaces import cleanly')
|
|
245
|
+
"
|
|
246
|
+
|
|
247
|
+
- name: Upload artifacts
|
|
248
|
+
uses: actions/upload-artifact@v4
|
|
249
|
+
with:
|
|
250
|
+
name: dist-${{ github.sha }}
|
|
251
|
+
path: dist/
|
|
252
|
+
retention-days: 14
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
# Triggers on a pushed git tag matching `v*` (e.g. `v0.1.0`, `v1.0.0-rc1`).
|
|
4
|
+
# Builds the wheel + sdist, attests the build, and publishes to PyPI via
|
|
5
|
+
# PyPI's trusted publisher (OIDC) — no long-lived API token in repo secrets.
|
|
6
|
+
#
|
|
7
|
+
# To use this workflow you must first configure vstack as a trusted
|
|
8
|
+
# publisher on PyPI:
|
|
9
|
+
# https://docs.pypi.org/trusted-publishers/
|
|
10
|
+
#
|
|
11
|
+
# Once configured, cutting a release is:
|
|
12
|
+
#
|
|
13
|
+
# git tag v0.1.0
|
|
14
|
+
# git push origin v0.1.0
|
|
15
|
+
#
|
|
16
|
+
# The workflow does the rest.
|
|
17
|
+
|
|
18
|
+
on:
|
|
19
|
+
push:
|
|
20
|
+
tags:
|
|
21
|
+
- "v*"
|
|
22
|
+
|
|
23
|
+
permissions:
|
|
24
|
+
contents: read
|
|
25
|
+
|
|
26
|
+
concurrency:
|
|
27
|
+
group: release-${{ github.ref }}
|
|
28
|
+
cancel-in-progress: false
|
|
29
|
+
|
|
30
|
+
jobs:
|
|
31
|
+
build:
|
|
32
|
+
name: Build wheel + sdist for release
|
|
33
|
+
runs-on: ubuntu-latest
|
|
34
|
+
outputs:
|
|
35
|
+
version: ${{ steps.version.outputs.version }}
|
|
36
|
+
steps:
|
|
37
|
+
- uses: actions/checkout@v4
|
|
38
|
+
|
|
39
|
+
- name: Set up Python
|
|
40
|
+
uses: actions/setup-python@v5
|
|
41
|
+
with:
|
|
42
|
+
python-version: "3.13"
|
|
43
|
+
cache: pip
|
|
44
|
+
|
|
45
|
+
- name: Verify tag matches pyproject version
|
|
46
|
+
id: version
|
|
47
|
+
run: |
|
|
48
|
+
set -e
|
|
49
|
+
TAG="${GITHUB_REF_NAME#v}"
|
|
50
|
+
PYPROJECT_VERSION=$(python -c "import tomllib, pathlib; print(tomllib.loads(pathlib.Path('pyproject.toml').read_text())['project']['version'])")
|
|
51
|
+
echo "Tag version: $TAG"
|
|
52
|
+
echo "pyproject version: $PYPROJECT_VERSION"
|
|
53
|
+
if [ "$TAG" != "$PYPROJECT_VERSION" ]; then
|
|
54
|
+
echo "::error::tag $TAG does not match pyproject.toml version $PYPROJECT_VERSION"
|
|
55
|
+
exit 1
|
|
56
|
+
fi
|
|
57
|
+
echo "version=$TAG" >> "$GITHUB_OUTPUT"
|
|
58
|
+
|
|
59
|
+
- name: Install build
|
|
60
|
+
run: python -m pip install build
|
|
61
|
+
|
|
62
|
+
- name: Build wheel + sdist
|
|
63
|
+
run: python -m build
|
|
64
|
+
|
|
65
|
+
- name: Smoke-test wheel imports all 34 namespaces
|
|
66
|
+
run: |
|
|
67
|
+
python -m pip install dist/valanistack-*-py3-none-any.whl
|
|
68
|
+
python -c "
|
|
69
|
+
import importlib, vstack
|
|
70
|
+
assert vstack.__version__ == '${{ steps.version.outputs.version }}', f'version mismatch: {vstack.__version__}'
|
|
71
|
+
for ns in [
|
|
72
|
+
'vstack.aar', 'vstack.lencioni', 'vstack.trust_triangle',
|
|
73
|
+
'vstack.johari', 'vstack.grpi', 'vstack.bias_stack',
|
|
74
|
+
'vstack.psych_safety', 'vstack.thomas_kilmann',
|
|
75
|
+
'vstack.feedback_triggers', 'vstack.devils_advocate',
|
|
76
|
+
'vstack.lewin', 'vstack.mcallister_trust',
|
|
77
|
+
'vstack.social_loafing', 'vstack.debate_pathology',
|
|
78
|
+
'vstack.process_gain_loss', 'vstack.smart_goal',
|
|
79
|
+
'vstack.mcgregor', 'vstack.group_decision',
|
|
80
|
+
'vstack.schein_culture', 'vstack.grant_strengths',
|
|
81
|
+
'vstack.plus_delta', 'vstack.robbins_culture',
|
|
82
|
+
'vstack.superflocks', 'vstack.yerkes_dodson',
|
|
83
|
+
'vstack.org_structure', 'vstack.motivation_traps',
|
|
84
|
+
'vstack.glaser_conversation', 'vstack.goleman_ei',
|
|
85
|
+
'vstack.sdt_reward', 'vstack.span_of_control',
|
|
86
|
+
'vstack.danva_emotion', 'vstack.cognitive_reappraisal',
|
|
87
|
+
'vstack.hexaco', 'vstack.vroom_expectancy',
|
|
88
|
+
]:
|
|
89
|
+
importlib.import_module(ns)
|
|
90
|
+
print('Release smoke test passed')
|
|
91
|
+
"
|
|
92
|
+
|
|
93
|
+
- name: Upload built artifacts
|
|
94
|
+
uses: actions/upload-artifact@v4
|
|
95
|
+
with:
|
|
96
|
+
name: release-dist
|
|
97
|
+
path: dist/
|
|
98
|
+
retention-days: 30
|
|
99
|
+
|
|
100
|
+
publish-pypi:
|
|
101
|
+
name: Publish to PyPI (trusted publisher)
|
|
102
|
+
needs: build
|
|
103
|
+
runs-on: ubuntu-latest
|
|
104
|
+
environment:
|
|
105
|
+
name: pypi
|
|
106
|
+
url: https://pypi.org/project/valanistack/${{ needs.build.outputs.version }}/
|
|
107
|
+
permissions:
|
|
108
|
+
id-token: write
|
|
109
|
+
steps:
|
|
110
|
+
- name: Download built artifacts
|
|
111
|
+
uses: actions/download-artifact@v4
|
|
112
|
+
with:
|
|
113
|
+
name: release-dist
|
|
114
|
+
path: dist/
|
|
115
|
+
|
|
116
|
+
- name: Publish to PyPI
|
|
117
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
118
|
+
|
|
119
|
+
github-release:
|
|
120
|
+
name: Create GitHub Release
|
|
121
|
+
needs: [build, publish-pypi]
|
|
122
|
+
runs-on: ubuntu-latest
|
|
123
|
+
permissions:
|
|
124
|
+
contents: write
|
|
125
|
+
steps:
|
|
126
|
+
- uses: actions/checkout@v4
|
|
127
|
+
|
|
128
|
+
- name: Download built artifacts
|
|
129
|
+
uses: actions/download-artifact@v4
|
|
130
|
+
with:
|
|
131
|
+
name: release-dist
|
|
132
|
+
path: dist/
|
|
133
|
+
|
|
134
|
+
- name: Create GitHub Release with artifacts
|
|
135
|
+
uses: softprops/action-gh-release@v2
|
|
136
|
+
with:
|
|
137
|
+
tag_name: ${{ github.ref_name }}
|
|
138
|
+
name: vstack ${{ needs.build.outputs.version }}
|
|
139
|
+
body: |
|
|
140
|
+
vstack ${{ needs.build.outputs.version }}.
|
|
141
|
+
|
|
142
|
+
Install:
|
|
143
|
+
```
|
|
144
|
+
pip install valanistack==${{ needs.build.outputs.version }}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
See [CHANGELOG.md](https://github.com/valani9/vstack/blob/main/CHANGELOG.md) for the full release notes.
|
|
148
|
+
files: |
|
|
149
|
+
dist/valanistack-*.whl
|
|
150
|
+
dist/valanistack-*.tar.gz
|
|
151
|
+
draft: false
|
|
152
|
+
prerelease: ${{ contains(github.ref_name, '-rc') || contains(github.ref_name, '-beta') || contains(github.ref_name, '-alpha') }}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.so
|
|
6
|
+
.Python
|
|
7
|
+
build/
|
|
8
|
+
dist/
|
|
9
|
+
*.egg-info/
|
|
10
|
+
.eggs/
|
|
11
|
+
.pytest_cache/
|
|
12
|
+
.mypy_cache/
|
|
13
|
+
.ruff_cache/
|
|
14
|
+
.coverage
|
|
15
|
+
htmlcov/
|
|
16
|
+
.tox/
|
|
17
|
+
.nox/
|
|
18
|
+
venv/
|
|
19
|
+
.venv/
|
|
20
|
+
env/
|
|
21
|
+
.env
|
|
22
|
+
|
|
23
|
+
# Node
|
|
24
|
+
node_modules/
|
|
25
|
+
package-lock.json
|
|
26
|
+
.npm
|
|
27
|
+
*.tsbuildinfo
|
|
28
|
+
|
|
29
|
+
# Editor
|
|
30
|
+
.vscode/
|
|
31
|
+
.idea/
|
|
32
|
+
*.swp
|
|
33
|
+
*.swo
|
|
34
|
+
.DS_Store
|
|
35
|
+
|
|
36
|
+
# Project
|
|
37
|
+
.cache/
|
|
38
|
+
*.log
|
|
39
|
+
notebooks/.ipynb_checkpoints/
|
|
40
|
+
benchmark-runs/
|
|
41
|
+
demo-outputs/
|
|
42
|
+
*.pkl
|
|
43
|
+
module-2-team/30-aar-generator/eval/results/
|
|
44
|
+
module-1-individual/**/eval/results/
|
|
45
|
+
module-3-system/**/eval/results/
|
|
46
|
+
dist/
|
|
47
|
+
module-2-team/17-lencioni-diagnostic/eval/results/
|
|
48
|
+
module-2-team/18-trust-triangle-audit/eval/results/
|
|
49
|
+
module-1-individual/03-johari-window/eval/results/
|
|
50
|
+
module-2-team/13-grpi-working-agreement/eval/results/
|
|
51
|
+
module-2-team/27-bias-stack-detector/eval/results/
|
|
52
|
+
module-2-team/20-edmondson-psych-safety/eval/results/
|
|
53
|
+
module-2-team/29-thomas-kilmann-selector/eval/results/
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Pre-commit hooks for vstack. Install with:
|
|
2
|
+
#
|
|
3
|
+
# pre-commit install
|
|
4
|
+
#
|
|
5
|
+
# Then every `git commit` runs ruff (lint + format) + mypy + bandit + pip-audit
|
|
6
|
+
# against the staged files only. Manual full-repo run:
|
|
7
|
+
#
|
|
8
|
+
# pre-commit run --all-files
|
|
9
|
+
#
|
|
10
|
+
# The hooks mirror what CI runs, so passing locally = green PR.
|
|
11
|
+
|
|
12
|
+
repos:
|
|
13
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
14
|
+
rev: v5.0.0
|
|
15
|
+
hooks:
|
|
16
|
+
- id: check-yaml
|
|
17
|
+
- id: check-toml
|
|
18
|
+
- id: check-merge-conflict
|
|
19
|
+
- id: end-of-file-fixer
|
|
20
|
+
- id: trailing-whitespace
|
|
21
|
+
- id: check-added-large-files
|
|
22
|
+
args: [--maxkb=512]
|
|
23
|
+
|
|
24
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
25
|
+
rev: v0.7.4
|
|
26
|
+
hooks:
|
|
27
|
+
- id: ruff
|
|
28
|
+
args: [--fix]
|
|
29
|
+
files: ^(module-1-individual|module-2-team|module-3-organization)/
|
|
30
|
+
- id: ruff-format
|
|
31
|
+
files: ^(module-1-individual|module-2-team|module-3-organization)/
|
|
32
|
+
|
|
33
|
+
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
34
|
+
rev: v1.13.0
|
|
35
|
+
hooks:
|
|
36
|
+
- id: mypy
|
|
37
|
+
# mypy needs the package installed; the hook installs additional
|
|
38
|
+
# dependencies into its own venv.
|
|
39
|
+
additional_dependencies: [pydantic>=2.6.0]
|
|
40
|
+
args: [--strict, --ignore-missing-imports]
|
|
41
|
+
files: ^(module-1-individual|module-2-team|module-3-organization)/.*/lib/.*\.py$
|
|
42
|
+
|
|
43
|
+
- repo: https://github.com/PyCQA/bandit
|
|
44
|
+
rev: 1.7.10
|
|
45
|
+
hooks:
|
|
46
|
+
- id: bandit
|
|
47
|
+
# Library code only — fixture-heavy demos and tests trip rules that
|
|
48
|
+
# do not represent real risk.
|
|
49
|
+
args: [-ll, -ii]
|
|
50
|
+
files: ^(module-1-individual|module-2-team|module-3-organization)/.*/lib/.*\.py$
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to vstack are documented in this file. The format
|
|
4
|
+
follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the
|
|
5
|
+
project adheres to [Semantic Versioning](https://semver.org/) from
|
|
6
|
+
`1.0.0` onward. During the `0.x` series, minor bumps may include
|
|
7
|
+
breaking changes (see API stability promise in `vstack/__init__.py`).
|
|
8
|
+
|
|
9
|
+
## [0.1.0] — 2026-05-23
|
|
10
|
+
|
|
11
|
+
First production-ready release. All 34 patterns from the roadmap ship at
|
|
12
|
+
the 5-layer quality bar (README + library + demo + benchmark + essay).
|
|
13
|
+
|
|
14
|
+
### Added — top-level package
|
|
15
|
+
|
|
16
|
+
- `vstack.__version__` is now defined at the namespace root.
|
|
17
|
+
- `py.typed` marker ships in the wheel — downstream consumers now pick
|
|
18
|
+
up the library's type hints by default.
|
|
19
|
+
- API stability promise documented in the top-level package docstring.
|
|
20
|
+
|
|
21
|
+
### Added — shared production-grade infrastructure (`vstack.aar.*`)
|
|
22
|
+
|
|
23
|
+
- **Structured logging** with run-id correlation: `new_run_id`,
|
|
24
|
+
`run_context`, `get_logger`, `JsonFormatter`,
|
|
25
|
+
`configure_json_logging`. Patterns can correlate every log line
|
|
26
|
+
from a single diagnostic run via a stable identifier, and ship JSON
|
|
27
|
+
logs to structured backends without per-pattern changes.
|
|
28
|
+
- **Token / cost telemetry**: `TelemetrySink` protocol,
|
|
29
|
+
`InMemoryTelemetrySink`, `NullTelemetrySink`, `record_llm_call`,
|
|
30
|
+
`time_call`, `set_default_sink`. Default is off (Null sink); when
|
|
31
|
+
enabled, every LLM call emits an event with model + token counts +
|
|
32
|
+
elapsed_ms + run_id + pattern.
|
|
33
|
+
- **Prompt-injection input guards**: `sanitize_for_prompt`,
|
|
34
|
+
`detect_injection`, `fence`. Strip control characters, cap absurd
|
|
35
|
+
field sizes, detect known impersonation phrases, and provide
|
|
36
|
+
unambiguous delimiters for fencing user content inside prompt
|
|
37
|
+
templates.
|
|
38
|
+
- **Async LLM client adapters**: `AnthropicAsyncClient`,
|
|
39
|
+
`OpenAIAsyncClient`, `OllamaAsyncClient` — same constructor surface
|
|
40
|
+
as the sync clients, with `async def complete(...)`. Enables
|
|
41
|
+
parallel pattern fan-out in server traffic.
|
|
42
|
+
- **Token-usage tracking** on every sync + async client: `last_usage`
|
|
43
|
+
attribute returns an `LLMUsage` dataclass (input/output/total
|
|
44
|
+
tokens + model). Cost layers can read this after each call without
|
|
45
|
+
changing the `complete(...) -> str` return signature.
|
|
46
|
+
- **Configurable timeouts** on all real clients
|
|
47
|
+
(`DEFAULT_TIMEOUT_SECONDS = 120.0`). LLM calls can no longer hang
|
|
48
|
+
indefinitely on a stalled provider.
|
|
49
|
+
|
|
50
|
+
### Added — security, release engineering, and docs
|
|
51
|
+
|
|
52
|
+
- `SECURITY.md` with vulnerability reporting policy.
|
|
53
|
+
- `CHANGELOG.md` (this file).
|
|
54
|
+
- Pre-commit hooks config (`.pre-commit-config.yaml`): ruff, ruff
|
|
55
|
+
format, mypy, bandit, pip-audit.
|
|
56
|
+
- PyPI release workflow (`.github/workflows/release.yml`) — publishes
|
|
57
|
+
to PyPI on git tag push via trusted publisher.
|
|
58
|
+
- CI extended with: bandit security scan, pip-audit dependency scan,
|
|
59
|
+
coverage gate, all-34-namespaces import verification in the build
|
|
60
|
+
job.
|
|
61
|
+
- README badges (CI status, PyPI version, Python versions, license).
|
|
62
|
+
- `examples/cookbook/` directory with cross-pattern composition
|
|
63
|
+
examples (orchestrator + diagnostic, parallel fan-out, telemetry
|
|
64
|
+
wiring).
|
|
65
|
+
- Per-pattern micro-benchmark harness
|
|
66
|
+
(`benchmarks/_perf/run_perf_suite.py`) measuring stub-client
|
|
67
|
+
latency p50/p95 across all 34 patterns for regression detection.
|
|
68
|
+
|
|
69
|
+
### Changed
|
|
70
|
+
|
|
71
|
+
- `Development Status` classifier promoted from `2 - Pre-Alpha` to
|
|
72
|
+
`4 - Beta`.
|
|
73
|
+
- `Python :: 3.13` classifier added (already covered by CI matrix).
|
|
74
|
+
- `vstack.aar.__version__` synced to `0.1.0`.
|
|
75
|
+
- Documentation updated to reflect the production-readiness layer.
|
|
76
|
+
|
|
77
|
+
### Compatibility
|
|
78
|
+
|
|
79
|
+
All existing public APIs from `0.0.14` continue to work unchanged.
|
|
80
|
+
The new infrastructure modules are purely additive — patterns that
|
|
81
|
+
do not adopt structured logging, telemetry, or input guards still
|
|
82
|
+
function exactly as they did in `0.0.14`.
|
|
83
|
+
|
|
84
|
+
## [0.0.14] — 2026-05-22
|
|
85
|
+
|
|
86
|
+
Closing batch. Patterns #04, #05, #07, #12 ship — completing the
|
|
87
|
+
34-pattern roadmap.
|
|
88
|
+
|
|
89
|
+
- `vstack.danva_emotion` (#04) — DANVA-style emotion-recognition
|
|
90
|
+
diagnostic. Per-emotion accuracy + intensity calibration + confusion
|
|
91
|
+
patterns computed deterministically; LLM contributes only
|
|
92
|
+
interventions.
|
|
93
|
+
- `vstack.cognitive_reappraisal` (#05) — Gross's reappraisal vs
|
|
94
|
+
suppression vs rumination vs avoidance vs expression classifier with
|
|
95
|
+
two LLM passes (strategy detection + interventions).
|
|
96
|
+
- `vstack.hexaco` (#07) — Lee & Ashton 6-factor personality fit
|
|
97
|
+
diagnostic. H-factor (honesty-humility) risk reported separately
|
|
98
|
+
from overall fit.
|
|
99
|
+
- `vstack.vroom_expectancy` (#12) — Victor Vroom's
|
|
100
|
+
Expectancy × Instrumentality × Valence motivation calculus. Product
|
|
101
|
+
computed deterministically in Python; LLM cannot override the math.
|
|
102
|
+
|
|
103
|
+
## [0.0.13] — 2026-05-22
|
|
104
|
+
|
|
105
|
+
- `vstack.goleman_ei` (#02) — Goleman's 2×2 emotional-intelligence
|
|
106
|
+
diagnostic (self × other × recognition × regulation).
|
|
107
|
+
- `vstack.sdt_reward` (#10) — Self-Determination Theory intrinsic
|
|
108
|
+
reward diagnostic (autonomy, competence, relatedness).
|
|
109
|
+
- `vstack.span_of_control` (#34) — six deterministic
|
|
110
|
+
org-structure metrics computed in Python (max_span, mean_span,
|
|
111
|
+
centralization_index, hierarchy_depth, span_gini,
|
|
112
|
+
decision_bottleneck).
|
|
113
|
+
|
|
114
|
+
## [0.0.12] — 2026-05-22
|
|
115
|
+
|
|
116
|
+
- `vstack.org_structure` (#33) — six-dimensional org structure
|
|
117
|
+
matrix + archetype classifier.
|
|
118
|
+
- `vstack.motivation_traps` (#09) — Saxberg's four motivation
|
|
119
|
+
traps (values, self_efficacy, emotions, attribution).
|
|
120
|
+
- `vstack.glaser_conversation` (#21) — conversational-intelligence
|
|
121
|
+
steering across three states × three levels.
|
|
122
|
+
|
|
123
|
+
## [0.0.11 and earlier]
|
|
124
|
+
|
|
125
|
+
See git history for v0.0.11 and prior batches. Roadmap kickoff at
|
|
126
|
+
`v0.0.1` with pattern #30 (AAR generator); v0.0.2–v0.0.11 shipped
|
|
127
|
+
patterns #17, #18, #03, #13, #27, #20, #29, #22, #28, #01, #19, #15,
|
|
128
|
+
#26, #14, #24, #11, #25, #31, #08, #23, #32, #16, #06 incrementally.
|
|
129
|
+
|
|
130
|
+
[0.1.0]: https://github.com/valani9/vstack/releases/tag/v0.1.0
|
|
131
|
+
[0.0.14]: https://github.com/valani9/vstack/releases/tag/v0.0.14
|
|
132
|
+
[0.0.13]: https://github.com/valani9/vstack/releases/tag/v0.0.13
|
|
133
|
+
[0.0.12]: https://github.com/valani9/vstack/releases/tag/v0.0.12
|