https://github.com/riponcm/projectmem
· scanned 2026-06-15 23:51 UTC (2 months, 3 weeks ago)
20 raw signals (2 security + 18 graph)
Last scanned 2 months, 3 weeks ago · v1 · 19 actionable findings from 2 signal sources. 1 repeated signal grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 396 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 |
|---|---|---|---|
test_summary_and_issue_file_are_regenerated |
software | healthy | tests/test_summary.py:8 |
test_regenerate_preserves_project_purpose |
software | healthy | tests/test_summary.py:42 |
test_project_purpose_auto_syncs_from_project_map |
software | healthy | tests/test_summary.py:65 |
test_project_purpose_falls_back_when_project_map_is_placeho… |
software | healthy | tests/test_summary.py:103 |
test_init_creates_projectmem_files |
software | healthy | tests/test_init.py:8 |
test_instructions_command_prints_ai_protocol |
software | healthy | tests/test_init.py:47 |
test_map_command_prints_project_map |
software | healthy | tests/test_init.py:62 |
_make_repo |
software | healthy | tests/test_init_ux.py:32 |
test_stack_detect_does_nothing_when_no_manifests |
software | healthy | tests/test_init_ux.py:43 |
test_stack_detect_pyproject_populates_map |
software | healthy | tests/test_init_ux.py:51 |
test_stack_detect_package_json_populates_map |
software | healthy | tests/test_init_ux.py:80 |
test_stack_detect_never_overwrites_user_edited_map |
software | healthy | tests/test_init_ux.py:97 |
test_stack_detect_handles_corrupt_manifest |
software | healthy | tests/test_init_ux.py:112 |
test_extract_description_pyproject |
software | healthy | tests/test_init_ux.py:130 |
test_extract_description_package_json |
software | healthy | tests/test_init_ux.py:138 |
test_extract_description_returns_none_when_absent |
software | healthy | tests/test_init_ux.py:146 |
test_extract_entry_points_pyproject_scripts |
software | healthy | tests/test_init_ux.py:153 |
test_extract_entry_points_npm_scripts |
software | healthy | tests/test_init_ux.py:168 |
test_detect_main_folders |
software | healthy | tests/test_init_ux.py:184 |
test_print_mcp_config_contains_expected_pieces |
software | healthy | tests/test_init_ux.py:199 |
test_print_mcp_config_uses_absolute_python |
software | healthy | tests/test_init_ux.py:216 |
test_log_attempt_and_fix_write_events |
software | healthy | tests/test_log.py:10 |
test_attempt_without_open_issue_fails |
software | healthy | tests/test_log.py:37 |
test_attempt_auto_issue_creates_parent |
software | healthy | tests/test_log.py:52 |
test_attempt_after_fix_does_not_misattribute |
software | healthy | tests/test_log.py:75 |
test_resolve_pjm_binary_returns_absolute_path_or_bare_name |
software | healthy | tests/test_hooks_path.py:35 |
test_precheck_snippet_bakes_path_into_script |
software | healthy | tests/test_hooks_path.py:43 |
test_auto_capture_snippet_bakes_path_and_capture_arg |
software | healthy | tests/test_hooks_path.py:53 |
fake_pjm |
software | healthy | tests/test_hooks_path.py:68 |
test_hook_runs_under_stripped_path |
software | healthy | tests/test_hooks_path.py:83 |
test_install_hooks_uses_resolved_path |
software | healthy | tests/test_hooks_path.py:124 |
_openai_key |
software | healthy | tests/test_redaction.py:53 |
_github_classic_token |
software | healthy | tests/test_redaction.py:57 |
_github_fine_grained_pat |
software | healthy | tests/test_redaction.py:61 |
_aws_access_key |
software | healthy | tests/test_redaction.py:65 |
_google_api_key |
software | healthy | tests/test_redaction.py:69 |
_slack_token |
software | healthy | tests/test_redaction.py:73 |
_stripe_live_key |
software | healthy | tests/test_redaction.py:77 |
_stripe_test_pk |
software | healthy | tests/test_redaction.py:81 |
_jwt |
software | healthy | tests/test_redaction.py:85 |
_bearer_token |
software | healthy | tests/test_redaction.py:92 |
_private_key_header |
software | healthy | tests/test_redaction.py:96 |
test_redacts_known_secret_shapes |
software | healthy | tests/test_redaction.py:119 |
test_does_not_touch_ordinary_prose |
software | healthy | tests/test_redaction.py:160 |
test_is_redaction_enabled_default_on |
software | healthy | tests/test_redaction.py:169 |
test_env_var_disables |
software | healthy | tests/test_redaction.py:175 |
test_redact_event_fields_honours_opt_out |
software | healthy | tests/test_redaction.py:180 |
test_redact_event_fields_default_on |
software | healthy | tests/test_redaction.py:198 |
test_redactable_fields_constant_is_stable |
software | healthy | tests/test_redaction.py:223 |
_init |
software | healthy | tests/test_v014_features.py:23 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
TUTORIAL.md |
software | healthy | TUTORIAL.md |
README.md |
software | healthy | README.md |
pyproject.toml |
software | healthy | pyproject.toml |
LICENSE |
software | healthy | LICENSE |
SECURITY.md |
software | healthy | SECURITY.md |
CHANGELOG.md |
software | healthy | CHANGELOG.md |
test_summary.py |
software | healthy | tests/test_summary.py |
test_init.py |
software | healthy | tests/test_init.py |
test_init_ux.py |
software | healthy | tests/test_init_ux.py |
test_log.py |
software | healthy | tests/test_log.py |
test_hooks_path.py |
software | healthy | tests/test_hooks_path.py |
test_redaction.py |
software | healthy | tests/test_redaction.py |
test_v014_features.py |
software | healthy | tests/test_v014_features.py |
test_search.py |
software | healthy | tests/test_search.py |
FUNDING.yml |
software | healthy | .github/FUNDING.yml |
staleness.py |
software | healthy | src/projectmem/staleness.py |
__init__.py |
software | healthy | src/projectmem/__init__.py |
mcp_server.py |
software | healthy | src/projectmem/mcp_server.py |
storage.py |
software | healthy | src/projectmem/storage.py |
global_memory.py |
software | healthy | src/projectmem/global_memory.py |
redaction.py |
software | healthy | src/projectmem/redaction.py |
summary.py |
software | healthy | src/projectmem/summary.py |
cli.py |
software | healthy | src/projectmem/cli.py |
models.py |
software | healthy | src/projectmem/models.py |
search.py |
software | healthy | src/projectmem/search.py |
show.py |
software | healthy | src/projectmem/commands/show.py |
__init__.py |
software | healthy | src/projectmem/commands/__init__.py |
instructions.py |
software | healthy | src/projectmem/commands/instructions.py |
map.py |
software | healthy | src/projectmem/commands/map.py |
attempt.py |
software | healthy | src/projectmem/commands/attempt.py |
backfill.py |
software | healthy | src/projectmem/commands/backfill.py |
precheck.py |
software | healthy | src/projectmem/commands/precheck.py |
auto_capture.py |
software | healthy | src/projectmem/commands/auto_capture.py |
watch.py |
software | healthy | src/projectmem/commands/watch.py |
decision.py |
software | healthy | src/projectmem/commands/decision.py |
note.py |
software | healthy | src/projectmem/commands/note.py |
context.py |
software | healthy | src/projectmem/commands/context.py |
log.py |
software | healthy | src/projectmem/commands/log.py |
global_cmd.py |
software | healthy | src/projectmem/commands/global_cmd.py |
init.py |
software | healthy | src/projectmem/commands/init.py |
wrap.py |
software | healthy | src/projectmem/commands/wrap.py |
fix.py |
software | healthy | src/projectmem/commands/fix.py |
export.py |
software | healthy | src/projectmem/commands/export.py |
search.py |
software | healthy | src/projectmem/commands/search.py |
brief.py |
software | healthy | src/projectmem/commands/brief.py |
score.py |
software | healthy | src/projectmem/commands/score.py |
hooks.py |
software | healthy | src/projectmem/commands/hooks.py |
visualize.py |
software | healthy | src/projectmem/commands/visualize.py |
stats.py |
software | healthy | src/projectmem/commands/stats.py |
regenerate.py |
software | healthy | src/projectmem/commands/regenerate.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
.github |
software | healthy | .github |
src |
software | healthy | src |
projectmem |
software | healthy | src/projectmem |
commands |
software | healthy | src/projectmem/commands |
| Label | Layer | Status | Path |
|---|---|---|---|
Fake |
software | healthy | tests/test_redaction.py:204 |
ProjectMemError |
software | healthy | src/projectmem/storage.py:19 |
Event |
software | healthy | src/projectmem/models.py:69 |
_Handler |
software | healthy | src/projectmem/commands/watch.py:284 |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::src/projectmem/redaction.py |
security | healthy | src/projectmem/redaction.py |
auth::README.md |
security | healthy | README.md |
auth::tests/test_redaction.py |
security | healthy | tests/test_redaction.py |
| Label | Layer | Status | Path |
|---|---|---|---|
postgres |
data | healthy | README.md |
redis |
data | healthy | src/projectmem/global_memory.py |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-0pl6zla7 |
software | healthy | /tmp/repobility-clone-0pl6zla7 |
| Label | Layer | Status | Path |
|---|---|---|---|
celery |
data | healthy | src/projectmem/global_memory.py |
| Label | Layer | Status | Path |
|---|---|---|---|
nginx |
network | healthy | src/projectmem/global_memory.py |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::aws |
hardware | healthy | src/projectmem/redaction.py |
This page is publicly accessible at:
https://repobility.com/scan/7a66d25a-c13e-40f3-84d2-dc2c80bea674/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/7a66d25a-c13e-40f3-84d2-dc2c80bea674/
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.