https://github.com/sterkenburg/tpw-lifecycle
· scanned 2026-06-16 00:22 UTC (2 months, 2 weeks ago)
23 raw signals (0 security + 23 graph)
Last scanned 2 months, 2 weeks ago · v1 · 23 actionable findings from 1 signal source. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 320 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
targeting_df |
software | healthy | tests/conftest.py:18 |
build |
software | healthy | tests/conftest.py:21 |
test_blend_tier_union |
software | healthy | tests/test_targeting.py:22 |
_row |
software | healthy | tests/test_targeting.py:28 |
test_at_risk_score_baseline_is_low |
software | healthy | tests/test_targeting.py:40 |
test_at_risk_score_low_exposure_stacks |
software | healthy | tests/test_targeting.py:44 |
test_at_risk_score_will_churn_bump_guarantees_p2 |
software | healthy | tests/test_targeting.py:49 |
test_at_risk_score_clamps_to_one |
software | healthy | tests/test_targeting.py:56 |
test_tier_boundaries |
software | healthy | tests/test_targeting.py:70 |
test_segment_classification |
software | healthy | tests/test_targeting.py:81 |
test_retained_statuses_allowlist |
software | healthy | tests/test_targeting.py:87 |
test_stable_arm_is_deterministic |
software | healthy | tests/test_cohort.py:9 |
test_stable_arm_changes_with_salt_and_experiment |
software | healthy | tests/test_cohort.py:17 |
test_stable_arm_is_roughly_balanced |
software | healthy | tests/test_cohort.py:24 |
_pool |
software | healthy | tests/test_cohort.py:33 |
test_choose_salt_respects_skew_and_improves_balance |
software | healthy | tests/test_cohort.py:45 |
test_assign_reuses_locked_salt_and_skips_enrolled |
software | healthy | tests/test_cohort.py:55 |
test_assign_rerandomizes_fresh_experiment |
software | healthy | tests/test_cohort.py:70 |
_patch_targeting |
software | healthy | tests/test_cohort.py:81 |
test_stage1_excludes_first_term_and_requires_bundle |
software | healthy | tests/test_cohort.py:85 |
test_onboarding_requires_active_first_term |
software | healthy | tests/test_cohort.py:98 |
test_winback_takes_only_non_retained |
software | healthy | tests/test_cohort.py:112 |
test_eligibility_uses_latest_snapshot_only |
software | healthy | tests/test_cohort.py:125 |
_row |
software | healthy | tests/test_journey.py:9 |
test_stage_routing |
software | healthy | tests/test_journey.py:50 |
test_stage_levers_reference_real_levers |
software | healthy | tests/test_journey.py:54 |
test_every_stage_has_a_lever_mapping |
software | healthy | tests/test_journey.py:60 |
_patch_arms |
software | healthy | tests/test_directives.py:10 |
test_generate_emits_treatment_only_all_levers |
software | healthy | tests/test_directives.py:19 |
test_generate_raises_on_control_leak |
software | healthy | tests/test_directives.py:28 |
test_levers_are_scoped_per_experiment |
software | healthy | tests/test_directives.py:35 |
test_status_gated_until_flag_then_dry_run_then_delivered |
software | healthy | tests/test_directives.py:43 |
test_every_lever_has_dispatch_contract_fields |
software | healthy | tests/test_directives.py:60 |
_panel |
software | healthy | tests/test_measurement.py:8 |
test_two_arm_detects_real_lift |
software | healthy | tests/test_measurement.py:33 |
test_two_arm_null_when_no_lift |
software | healthy | tests/test_measurement.py:44 |
test_two_arm_detects_baseline_imbalance |
software | healthy | tests/test_measurement.py:51 |
_patch_audit |
software | healthy | tests/test_measurement.py:62 |
fake_query |
software | healthy | tests/test_measurement.py:63 |
test_audit_flags_control_in_emitter_log |
software | healthy | tests/test_measurement.py:75 |
test_audit_clean_when_logs_only_touch_treatment |
software | healthy | tests/test_measurement.py:82 |
StatCard |
software | healthy | web/src/components/StatCard.tsx:StatCard |
TierBadge |
software | healthy | web/src/components/TierBadge.tsx:TierBadge |
SupplierTable |
software | healthy | web/src/components/SupplierTable.tsx:SupplierTable |
SearchBar |
software | healthy | web/src/components/SearchBar.tsx:SearchBar |
formatDate |
software | healthy | web/src/components/ActionHistory.tsx:formatDate |
ActionHistory |
software | healthy | web/src/components/ActionHistory.tsx:ActionHistory |
OverviewPage |
software | healthy | web/src/app/page.tsx:OverviewPage |
RootLayout |
software | healthy | web/src/app/layout.tsx:RootLayout |
OverviewClient |
software | healthy | web/src/app/OverviewClient.tsx:OverviewClient |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
Dockerfile |
software | healthy | Dockerfile |
.env.example |
software | healthy | .env.example |
pyproject.toml |
software | healthy | pyproject.toml |
cloudbuild.yaml |
software | healthy | cloudbuild.yaml |
AGENTS.md |
software | healthy | AGENTS.md |
settings.yaml |
software | healthy | config/settings.yaml |
categories.yaml |
software | healthy | config/categories.yaml |
conftest.py |
software | healthy | tests/conftest.py |
test_targeting.py |
software | healthy | tests/test_targeting.py |
test_cohort.py |
software | healthy | tests/test_cohort.py |
test_journey.py |
software | healthy | tests/test_journey.py |
test_directives.py |
software | healthy | tests/test_directives.py |
test_measurement.py |
software | healthy | tests/test_measurement.py |
ARCHITECTURE.md |
software | healthy | docs/ARCHITECTURE.md |
MIGRATION.md |
software | healthy | docs/MIGRATION.md |
29_lifecycle_journey_refinement.md |
software | healthy | docs/strategy/29_lifecycle_journey_refinement.md |
11_this_week_checklist.md |
software | healthy | docs/strategy/11_this_week_checklist.md |
17_refined_retention_strategy.md |
software | healthy | docs/strategy/17_refined_retention_strategy.md |
19_system_architecture.md |
software | healthy | docs/strategy/19_system_architecture.md |
05_implementation_roadmap.md |
software | healthy | docs/strategy/05_implementation_roadmap.md |
09_email_templates.md |
software | healthy | docs/strategy/09_email_templates.md |
14_todo_list.md |
software | healthy | docs/strategy/14_todo_list.md |
24_spike3_churn_exposure_features_answer.md |
software | healthy | docs/strategy/24_spike3_churn_exposure_features_answer.md |
27_spike6_invoice_profile_join_answer.md |
software | healthy | docs/strategy/27_spike6_invoice_profile_join_answer.md |
23_spike2_exposure_rollup_answer.md |
software | healthy | docs/strategy/23_spike2_exposure_rollup_answer.md |
12_churn_prediction_audit.md |
software | healthy | docs/strategy/12_churn_prediction_audit.md |
16_retention_hooks_brainstorm.md |
software | healthy | docs/strategy/16_retention_hooks_brainstorm.md |
13_technical_integration_spec.md |
software | healthy | docs/strategy/13_technical_integration_spec.md |
22_elastic_boost_interface_contract.md |
software | healthy | docs/strategy/22_elastic_boost_interface_contract.md |
26_spike5_scraper_cohort_trigger_answer.md |
software | healthy | docs/strategy/26_spike5_scraper_cohort_trigger_answer.md |
00_README.md |
software | healthy | docs/strategy/00_README.md |
03_automated_flows.md |
software | healthy | docs/strategy/03_automated_flows.md |
25_spike4_bird_email_newsletter_answer.md |
software | healthy | docs/strategy/25_spike4_bird_email_newsletter_answer.md |
02_information_needed.md |
software | healthy | docs/strategy/02_information_needed.md |
15_actionable_retention_workflow.md |
software | healthy | docs/strategy/15_actionable_retention_workflow.md |
18_value_add_bundle_and_pilot.md |
software | healthy | docs/strategy/18_value_add_bundle_and_pilot.md |
20_phased_implementation_plan.md |
software | healthy | docs/strategy/20_phased_implementation_plan.md |
10_projected_value_model.md |
software | healthy | docs/strategy/10_projected_value_model.md |
04_best_practices_research.md |
software | healthy | docs/strategy/04_best_practices_research.md |
01_executive_summary.md |
software | healthy | docs/strategy/01_executive_summary.md |
07_gap_analysis_current_vs_target.md |
software | healthy | docs/strategy/07_gap_analysis_current_vs_target.md |
28_retention_flow_and_levers.md |
software | healthy | docs/strategy/28_retention_flow_and_levers.md |
08_instant_notification_spec.md |
software | healthy | docs/strategy/08_instant_notification_spec.md |
06_sales_team_transition_playbook.md |
software | healthy | docs/strategy/06_sales_team_transition_playbook.md |
21_phase0_confirmation_spikes.md |
software | healthy | docs/strategy/21_phase0_confirmation_spikes.md |
bruidsmake-up.md |
software | healthy | docs/category_analysis/bruidsmake-up.md |
decoratie.md |
software | healthy | docs/category_analysis/decoratie.md |
trouwambtenaar.md |
software | healthy | docs/category_analysis/trouwambtenaar.md |
entertainment.md |
software | healthy | docs/category_analysis/entertainment.md |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
config |
software | healthy | config |
tests |
software | healthy | tests |
docs |
software | healthy | docs |
strategy |
software | healthy | docs/strategy |
category_analysis |
software | healthy | docs/category_analysis |
web |
software | healthy | web |
src |
software | healthy | web/src |
components |
software | healthy | web/src/components |
app |
software | healthy | web/src/app |
suppliers |
software | healthy | web/src/app/suppliers |
[id] |
software | healthy | web/src/app/suppliers/[id] |
actions |
software | healthy | web/src/app/actions |
lib |
software | healthy | web/src/lib |
jobs |
software | healthy | jobs |
src |
software | healthy | src |
analytics |
software | healthy | src/analytics |
api |
software | healthy | src/api |
signals |
software | healthy | src/signals |
dashboard |
software | healthy | src/dashboard |
templates |
software | healthy | src/templates |
emails |
software | healthy | src/templates/emails |
actions |
software | healthy | src/actions |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8080 |
network | healthy | Dockerfile |
port:07 |
network | healthy | cloudbuild.yaml |
port:22 |
network | healthy | config/settings.yaml |
port:08 |
network | healthy | config/settings.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
GET /health |
api | healthy | src/api/main.py |
POST /webhooks/lead |
api | healthy | src/api/main.py |
GET /suppliers/{profile_id}/stats |
api | healthy | src/api/main.py |
| Label | Layer | Status | Path |
|---|---|---|---|
/page.tsx |
frontend | healthy | web/src/app/page.tsx |
/suppliers/[id] |
frontend | healthy | web/src/app/suppliers/[id]/page.tsx |
/actions |
frontend | healthy | web/src/app/actions/page.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
LeadWebhook |
software | healthy | src/api/main.py:35 |
EmailAction |
software | healthy | src/actions/flows.py:58 |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-_o89rav3 |
software | healthy | /tmp/repobility-clone-_o89rav3 |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::gcp |
hardware | healthy | AGENTS.md |
| Label | Layer | Status | Path |
|---|---|---|---|
RootLayout |
frontend | healthy | web/src/app/layout.tsx |
This page is publicly accessible at:
https://repobility.com/scan/7c544447-96cd-4b3f-aefd-6eccbe062163/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/7c544447-96cd-4b3f-aefd-6eccbe062163/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.