tripwire-pm 0.7.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.
- tripwire_pm-0.7.0/.github/workflows/ci.yml +23 -0
- tripwire_pm-0.7.0/.github/workflows/publish.yml +21 -0
- tripwire_pm-0.7.0/.gitignore +52 -0
- tripwire_pm-0.7.0/.pre-commit-config.yaml +47 -0
- tripwire_pm-0.7.0/LICENSE +21 -0
- tripwire_pm-0.7.0/Makefile +64 -0
- tripwire_pm-0.7.0/PKG-INFO +44 -0
- tripwire_pm-0.7.0/README.md +426 -0
- tripwire_pm-0.7.0/docs/agent-containers.md +923 -0
- tripwire_pm-0.7.0/docs/backlog.md +61 -0
- tripwire_pm-0.7.0/docs/kb-pivot-test-prompt.md +72 -0
- tripwire_pm-0.7.0/docs/overarching-plan.md +1304 -0
- tripwire_pm-0.7.0/docs/similar-tools.md +179 -0
- tripwire_pm-0.7.0/docs/superpowers/plans/2026-04-15-keel-v0.6a-pm-workflow.md +3470 -0
- tripwire_pm-0.7.0/docs/superpowers/plans/2026-04-15-keel-v0.6b-workspace.md +4026 -0
- tripwire_pm-0.7.0/docs/superpowers/plans/2026-04-16-session-spawn-agenda-worktrees.md +2727 -0
- tripwire_pm-0.7.0/docs/superpowers/plans/2026-04-21-v07a-rename-to-tripwire.md +1030 -0
- tripwire_pm-0.7.0/docs/superpowers/plans/2026-04-21-v07b-tripwire-features.md +4352 -0
- tripwire_pm-0.7.0/docs/superpowers/specs/2026-04-15-keel-workspace-design.md +924 -0
- tripwire_pm-0.7.0/docs/superpowers/specs/2026-04-16-session-spawn-agenda-worktrees-design.md +598 -0
- tripwire_pm-0.7.0/docs/superpowers/specs/2026-04-20-v07-unified-design.md +1099 -0
- tripwire_pm-0.7.0/docs/testing-guide-kb-pivot.md +428 -0
- tripwire_pm-0.7.0/docs/tripwire-core-features.md +199 -0
- tripwire_pm-0.7.0/docs/tripwire-plan.md +2409 -0
- tripwire_pm-0.7.0/docs/tripwire-ui.md +815 -0
- tripwire_pm-0.7.0/docs/v0.6b-workspace-migration.md +184 -0
- tripwire_pm-0.7.0/experiments/v01-kb-pivot-test.md +92 -0
- tripwire_pm-0.7.0/experiments/v02-kb-pivot-test.md +450 -0
- tripwire_pm-0.7.0/experiments/v03-kb-pivot-test.md +326 -0
- tripwire_pm-0.7.0/experiments/v04-graph-ui-v2-test.md +511 -0
- tripwire_pm-0.7.0/img/tripwire_full_black_bg.svg +11 -0
- tripwire_pm-0.7.0/img/tripwire_full_transparent.svg +10 -0
- tripwire_pm-0.7.0/img/tripwire_full_white_bg.svg +11 -0
- tripwire_pm-0.7.0/img/tripwire_mark_black_bg.svg +7 -0
- tripwire_pm-0.7.0/img/tripwire_mark_transparent.svg +6 -0
- tripwire_pm-0.7.0/img/tripwire_mark_white_bg.svg +7 -0
- tripwire_pm-0.7.0/pyproject.toml +79 -0
- tripwire_pm-0.7.0/src/tripwire/__init__.py +11 -0
- tripwire_pm-0.7.0/src/tripwire/cli/__init__.py +6 -0
- tripwire_pm-0.7.0/src/tripwire/cli/_profiling.py +77 -0
- tripwire_pm-0.7.0/src/tripwire/cli/_utils.py +25 -0
- tripwire_pm-0.7.0/src/tripwire/cli/agenda.py +249 -0
- tripwire_pm-0.7.0/src/tripwire/cli/artifacts.py +201 -0
- tripwire_pm-0.7.0/src/tripwire/cli/ci.py +76 -0
- tripwire_pm-0.7.0/src/tripwire/cli/completion.py +71 -0
- tripwire_pm-0.7.0/src/tripwire/cli/enums.py +133 -0
- tripwire_pm-0.7.0/src/tripwire/cli/graph.py +279 -0
- tripwire_pm-0.7.0/src/tripwire/cli/init.py +746 -0
- tripwire_pm-0.7.0/src/tripwire/cli/issue.py +193 -0
- tripwire_pm-0.7.0/src/tripwire/cli/lint.py +118 -0
- tripwire_pm-0.7.0/src/tripwire/cli/main.py +109 -0
- tripwire_pm-0.7.0/src/tripwire/cli/next_key.py +73 -0
- tripwire_pm-0.7.0/src/tripwire/cli/node.py +108 -0
- tripwire_pm-0.7.0/src/tripwire/cli/plan.py +71 -0
- tripwire_pm-0.7.0/src/tripwire/cli/refresh.py +42 -0
- tripwire_pm-0.7.0/src/tripwire/cli/refs.py +384 -0
- tripwire_pm-0.7.0/src/tripwire/cli/scaffold.py +514 -0
- tripwire_pm-0.7.0/src/tripwire/cli/session.py +1528 -0
- tripwire_pm-0.7.0/src/tripwire/cli/status.py +211 -0
- tripwire_pm-0.7.0/src/tripwire/cli/templates.py +147 -0
- tripwire_pm-0.7.0/src/tripwire/cli/ui.py +93 -0
- tripwire_pm-0.7.0/src/tripwire/cli/uuid_cmd.py +30 -0
- tripwire_pm-0.7.0/src/tripwire/cli/validate.py +231 -0
- tripwire_pm-0.7.0/src/tripwire/cli/view.py +237 -0
- tripwire_pm-0.7.0/src/tripwire/cli/workspace.py +1159 -0
- tripwire_pm-0.7.0/src/tripwire/core/__init__.py +5 -0
- tripwire_pm-0.7.0/src/tripwire/core/branch_naming.py +134 -0
- tripwire_pm-0.7.0/src/tripwire/core/concept_graph.py +159 -0
- tripwire_pm-0.7.0/src/tripwire/core/dependency_graph.py +261 -0
- tripwire_pm-0.7.0/src/tripwire/core/enum_loader.py +225 -0
- tripwire_pm-0.7.0/src/tripwire/core/freshness.py +253 -0
- tripwire_pm-0.7.0/src/tripwire/core/git_helpers.py +103 -0
- tripwire_pm-0.7.0/src/tripwire/core/graph_cache.py +647 -0
- tripwire_pm-0.7.0/src/tripwire/core/handoff_store.py +41 -0
- tripwire_pm-0.7.0/src/tripwire/core/id_generator.py +54 -0
- tripwire_pm-0.7.0/src/tripwire/core/insights_store.py +56 -0
- tripwire_pm-0.7.0/src/tripwire/core/issue_artifact_store.py +117 -0
- tripwire_pm-0.7.0/src/tripwire/core/key_allocator.py +108 -0
- tripwire_pm-0.7.0/src/tripwire/core/lint_rules/__init__.py +15 -0
- tripwire_pm-0.7.0/src/tripwire/core/lint_rules/branch_convention.py +52 -0
- tripwire_pm-0.7.0/src/tripwire/core/lint_rules/gap_analysis.py +59 -0
- tripwire_pm-0.7.0/src/tripwire/core/lint_rules/orphan_concepts.py +94 -0
- tripwire_pm-0.7.0/src/tripwire/core/lint_rules/session_stale.py +47 -0
- tripwire_pm-0.7.0/src/tripwire/core/lint_rules/stale_workspace_nodes.py +69 -0
- tripwire_pm-0.7.0/src/tripwire/core/lint_rules/unpushed_promotions.py +57 -0
- tripwire_pm-0.7.0/src/tripwire/core/lint_rules/unresolved_merge_briefs.py +31 -0
- tripwire_pm-0.7.0/src/tripwire/core/linter.py +92 -0
- tripwire_pm-0.7.0/src/tripwire/core/locks.py +103 -0
- tripwire_pm-0.7.0/src/tripwire/core/manifest_loader.py +119 -0
- tripwire_pm-0.7.0/src/tripwire/core/merge_brief.py +221 -0
- tripwire_pm-0.7.0/src/tripwire/core/node_store.py +88 -0
- tripwire_pm-0.7.0/src/tripwire/core/parser.py +101 -0
- tripwire_pm-0.7.0/src/tripwire/core/paths.py +283 -0
- tripwire_pm-0.7.0/src/tripwire/core/planner.py +150 -0
- tripwire_pm-0.7.0/src/tripwire/core/process_helpers.py +24 -0
- tripwire_pm-0.7.0/src/tripwire/core/reference_parser.py +76 -0
- tripwire_pm-0.7.0/src/tripwire/core/selectors.py +130 -0
- tripwire_pm-0.7.0/src/tripwire/core/session_agenda.py +184 -0
- tripwire_pm-0.7.0/src/tripwire/core/session_complete.py +230 -0
- tripwire_pm-0.7.0/src/tripwire/core/session_monitor.py +147 -0
- tripwire_pm-0.7.0/src/tripwire/core/session_readiness.py +173 -0
- tripwire_pm-0.7.0/src/tripwire/core/session_review.py +105 -0
- tripwire_pm-0.7.0/src/tripwire/core/session_store.py +109 -0
- tripwire_pm-0.7.0/src/tripwire/core/spawn_config.py +140 -0
- tripwire_pm-0.7.0/src/tripwire/core/status.py +67 -0
- tripwire_pm-0.7.0/src/tripwire/core/store.py +185 -0
- tripwire_pm-0.7.0/src/tripwire/core/stream_json.py +52 -0
- tripwire_pm-0.7.0/src/tripwire/core/uuid_helpers.py +39 -0
- tripwire_pm-0.7.0/src/tripwire/core/validator.py +2429 -0
- tripwire_pm-0.7.0/src/tripwire/core/workspace_store.py +98 -0
- tripwire_pm-0.7.0/src/tripwire/core/workspace_sync.py +136 -0
- tripwire_pm-0.7.0/src/tripwire/models/__init__.py +92 -0
- tripwire_pm-0.7.0/src/tripwire/models/comment.py +28 -0
- tripwire_pm-0.7.0/src/tripwire/models/enums.py +162 -0
- tripwire_pm-0.7.0/src/tripwire/models/graph.py +141 -0
- tripwire_pm-0.7.0/src/tripwire/models/handoff.py +55 -0
- tripwire_pm-0.7.0/src/tripwire/models/insights.py +56 -0
- tripwire_pm-0.7.0/src/tripwire/models/issue.py +79 -0
- tripwire_pm-0.7.0/src/tripwire/models/issue_artifacts.py +38 -0
- tripwire_pm-0.7.0/src/tripwire/models/manifest.py +40 -0
- tripwire_pm-0.7.0/src/tripwire/models/node.py +97 -0
- tripwire_pm-0.7.0/src/tripwire/models/project.py +156 -0
- tripwire_pm-0.7.0/src/tripwire/models/session.py +176 -0
- tripwire_pm-0.7.0/src/tripwire/models/spawn.py +45 -0
- tripwire_pm-0.7.0/src/tripwire/models/workspace.py +63 -0
- tripwire_pm-0.7.0/src/tripwire/templates/__init__.py +18 -0
- tripwire_pm-0.7.0/src/tripwire/templates/agent_templates/backend-coder.yaml +51 -0
- tripwire_pm-0.7.0/src/tripwire/templates/agent_templates/frontend-coder.yaml +45 -0
- tripwire_pm-0.7.0/src/tripwire/templates/agent_templates/pm.yaml +52 -0
- tripwire_pm-0.7.0/src/tripwire/templates/agent_templates/verifier.yaml +37 -0
- tripwire_pm-0.7.0/src/tripwire/templates/artifacts/manifest.yaml +65 -0
- tripwire_pm-0.7.0/src/tripwire/templates/artifacts/plan.md.j2 +34 -0
- tripwire_pm-0.7.0/src/tripwire/templates/artifacts/post-completion-comments.md.j2 +23 -0
- tripwire_pm-0.7.0/src/tripwire/templates/artifacts/recommended-testing-plan.md.j2 +23 -0
- tripwire_pm-0.7.0/src/tripwire/templates/artifacts/task-checklist.md.j2 +20 -0
- tripwire_pm-0.7.0/src/tripwire/templates/artifacts/verification-checklist.md.j2 +35 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-agenda.md +18 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-close.md +10 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-edit.md +28 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-graph.md +30 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-handoff.md +28 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-issue-artifact.md +31 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-issue-close.md +40 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-lint.md +30 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-plan.md +11 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-project-create.md +36 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-project-sync.md +53 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-rescope.md +39 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-review.md +37 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-scope.md +18 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-session-agenda.md +22 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-session-check.md +24 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-session-complete.md +34 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-session-create.md +51 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-session-monitor.md +35 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-session-progress.md +19 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-session-queue.md +57 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-session-review.md +31 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-session-spawn.md +27 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-status.md +29 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-triage.md +35 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-update.md +10 -0
- tripwire_pm-0.7.0/src/tripwire/templates/commands/pm-validate.md +36 -0
- tripwire_pm-0.7.0/src/tripwire/templates/comment_templates/completion.yaml.j2 +23 -0
- tripwire_pm-0.7.0/src/tripwire/templates/comment_templates/question.yaml.j2 +19 -0
- tripwire_pm-0.7.0/src/tripwire/templates/comment_templates/status_change.yaml.j2 +10 -0
- tripwire_pm-0.7.0/src/tripwire/templates/enums/agent_state.yaml +42 -0
- tripwire_pm-0.7.0/src/tripwire/templates/enums/agent_type.yaml +15 -0
- tripwire_pm-0.7.0/src/tripwire/templates/enums/agent_types.yaml +12 -0
- tripwire_pm-0.7.0/src/tripwire/templates/enums/artifact_phase.yaml +18 -0
- tripwire_pm-0.7.0/src/tripwire/templates/enums/branch_type.yaml +21 -0
- tripwire_pm-0.7.0/src/tripwire/templates/enums/comment_type.yaml +18 -0
- tripwire_pm-0.7.0/src/tripwire/templates/enums/executor.yaml +12 -0
- tripwire_pm-0.7.0/src/tripwire/templates/enums/issue_status.yaml +31 -0
- tripwire_pm-0.7.0/src/tripwire/templates/enums/message_type.yaml +27 -0
- tripwire_pm-0.7.0/src/tripwire/templates/enums/node_status.yaml +15 -0
- tripwire_pm-0.7.0/src/tripwire/templates/enums/node_type.yaml +33 -0
- tripwire_pm-0.7.0/src/tripwire/templates/enums/priority.yaml +15 -0
- tripwire_pm-0.7.0/src/tripwire/templates/enums/re_engagement_trigger.yaml +45 -0
- tripwire_pm-0.7.0/src/tripwire/templates/enums/session_status.yaml +49 -0
- tripwire_pm-0.7.0/src/tripwire/templates/enums/verifier.yaml +12 -0
- tripwire_pm-0.7.0/src/tripwire/templates/issue_artifacts/developer.md.j2 +27 -0
- tripwire_pm-0.7.0/src/tripwire/templates/issue_artifacts/manifest.yaml +25 -0
- tripwire_pm-0.7.0/src/tripwire/templates/issue_artifacts/verified.md.j2 +25 -0
- tripwire_pm-0.7.0/src/tripwire/templates/issue_templates/default.yaml.j2 +60 -0
- tripwire_pm-0.7.0/src/tripwire/templates/orchestration/default.yaml +67 -0
- tripwire_pm-0.7.0/src/tripwire/templates/orchestration/hooks/__init__.py +22 -0
- tripwire_pm-0.7.0/src/tripwire/templates/project/.github/workflows/tripwire.yml.j2 +27 -0
- tripwire_pm-0.7.0/src/tripwire/templates/project/CLAUDE.md.j2 +44 -0
- tripwire_pm-0.7.0/src/tripwire/templates/project/gitignore.j2 +15 -0
- tripwire_pm-0.7.0/src/tripwire/templates/project/project.yaml.j2 +87 -0
- tripwire_pm-0.7.0/src/tripwire/templates/scoping-artifacts/compliance.md +67 -0
- tripwire_pm-0.7.0/src/tripwire/templates/scoping-artifacts/gap-analysis.md +37 -0
- tripwire_pm-0.7.0/src/tripwire/templates/scoping-artifacts/scoping-plan.md +34 -0
- tripwire_pm-0.7.0/src/tripwire/templates/session_templates/default.yaml.j2 +60 -0
- tripwire_pm-0.7.0/src/tripwire/templates/session_templates/handoff.yaml.j2 +16 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/agent-messaging/SKILL.md +182 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/agent-messaging/references/ANTI_PATTERNS.md +171 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/agent-messaging/references/EXAMPLES.md +109 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/agent-messaging/references/MESSAGE_TYPES.md +153 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/backend-development/SKILL.md +255 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/backend-development/references/COMMIT_PATTERN.md +97 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/backend-development/references/DEPENDENCIES.md +73 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/backend-development/references/TDD.md +115 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/SKILL.md +400 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/artifacts/compliance.md +66 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/artifacts/gap-analysis.md +53 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/artifacts/plan.md +85 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/artifacts/scoping-verification.md +20 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/artifacts/task-checklist.md +19 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/artifacts/verification-checklist.md +35 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/comment-status-change.yaml +15 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/issue-epic.yaml +35 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/issue-fully-formed.yaml +78 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/issue-with-references.yaml +69 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/node-config.yaml +28 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/node-contract.yaml +37 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/node-decision.yaml +45 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/node-endpoint.yaml +39 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/node-model.yaml +31 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/orchestration-default.yaml +47 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/session-multi-repo.yaml +60 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/session-planned.yaml +37 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/examples/session-single-issue.yaml +31 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/ANTI_PATTERNS.md +218 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/BRANCH_NAMING.md +59 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/COMMIT_CONVENTIONS.md +103 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/CONCEPT_GRAPH.md +155 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/ID_ALLOCATION.md +108 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/POLICIES.md +42 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/REFERENCES.md +117 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/SCHEMA_ARTIFACTS.md +143 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/SCHEMA_COMMENTS.md +61 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/SCHEMA_ISSUES.md +109 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/SCHEMA_NODES.md +107 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/SCHEMA_PROJECT.md +80 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/SCHEMA_SESSIONS.md +203 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/SUBAGENT_DELEGATION.md +70 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/VALIDATION.md +257 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/WORKFLOWS_INCREMENTAL_UPDATE.md +95 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/WORKFLOWS_INITIAL_SCOPING.md +375 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/WORKFLOWS_REVIEW.md +151 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/WORKFLOWS_TRIAGE.md +78 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/project-manager/references/WORKSPACE_SYNC.md +111 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/verification/SKILL.md +278 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/verification/references/REWARD_HACKING.md +195 -0
- tripwire_pm-0.7.0/src/tripwire/templates/skills/verification/references/SECURITY_CHECKLIST.md +113 -0
- tripwire_pm-0.7.0/src/tripwire/templates/spawn/defaults.yaml +42 -0
- tripwire_pm-0.7.0/src/tripwire/templates/standards.md.j2 +56 -0
- tripwire_pm-0.7.0/src/tripwire/ui/__init__.py +9 -0
- tripwire_pm-0.7.0/src/tripwire/ui/config.py +80 -0
- tripwire_pm-0.7.0/src/tripwire/ui/dependencies.py +100 -0
- tripwire_pm-0.7.0/src/tripwire/ui/events.py +245 -0
- tripwire_pm-0.7.0/src/tripwire/ui/file_watcher.py +383 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/.gitignore +2 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/.gitkeep +0 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/biome.json +22 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/components.json +21 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/index.html +12 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/package-lock.json +6346 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/package.json +58 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/__tests__/api/client.test.ts +161 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/__tests__/api/queryKeys.test.ts +137 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/__tests__/app/router.test.tsx +70 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/__tests__/components/test_MarkdownBody.test.tsx +224 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/__tests__/setup.ts +1 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/app/AgentStatusBar.tsx +10 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/app/App.tsx +6 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/app/PhaseBadge.tsx +6 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/app/Placeholder.tsx +20 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/app/ProjectShell.tsx +37 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/app/RootRedirect.tsx +7 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/app/Sidebar.tsx +20 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/app/TopBar.tsx +52 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/app/V2Placeholder.tsx +14 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/app/ValidationStatusIndicator.tsx +9 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/app/router.tsx +36 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/components/MarkdownBody.tsx +181 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/components/markdown/remark-tripwire-refs.ts +73 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/components/markdown/sanitize-schema.ts +38 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/components/ui/badge.tsx +33 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/components/ui/button.tsx +49 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/components/ui/card.tsx +55 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/components/ui/dialog.tsx +102 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/components/ui/dropdown-menu.tsx +187 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/components/ui/input.tsx +22 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/components/ui/popover.tsx +29 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/components/ui/scroll-area.tsx +44 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/components/ui/separator.tsx +24 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/components/ui/skeleton.tsx +7 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/components/ui/sonner.tsx +37 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/components/ui/table.tsx +91 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/components/ui/tabs.tsx +55 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/components/ui/tooltip.tsx +28 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/lib/api/client.ts +78 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/lib/api/endpoints/index.ts +10 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/lib/api/queryKeys.ts +62 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/lib/queryClient.ts +15 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/lib/utils.ts +6 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/main.tsx +19 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/styles/app.css +73 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/src/vite-env.d.ts +1 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/tsconfig.json +17 -0
- tripwire_pm-0.7.0/src/tripwire/ui/frontend/vite.config.ts +37 -0
- tripwire_pm-0.7.0/src/tripwire/ui/routes/__init__.py +62 -0
- tripwire_pm-0.7.0/src/tripwire/ui/routes/_v2_stub.py +40 -0
- tripwire_pm-0.7.0/src/tripwire/ui/routes/actions.py +60 -0
- tripwire_pm-0.7.0/src/tripwire/ui/routes/artifacts.py +24 -0
- tripwire_pm-0.7.0/src/tripwire/ui/routes/containers.py +62 -0
- tripwire_pm-0.7.0/src/tripwire/ui/routes/enums.py +21 -0
- tripwire_pm-0.7.0/src/tripwire/ui/routes/github.py +38 -0
- tripwire_pm-0.7.0/src/tripwire/ui/routes/graph.py +29 -0
- tripwire_pm-0.7.0/src/tripwire/ui/routes/health.py +17 -0
- tripwire_pm-0.7.0/src/tripwire/ui/routes/issues.py +23 -0
- tripwire_pm-0.7.0/src/tripwire/ui/routes/messages.py +52 -0
- tripwire_pm-0.7.0/src/tripwire/ui/routes/nodes.py +24 -0
- tripwire_pm-0.7.0/src/tripwire/ui/routes/orchestration.py +26 -0
- tripwire_pm-0.7.0/src/tripwire/ui/routes/pm_reviews.py +56 -0
- tripwire_pm-0.7.0/src/tripwire/ui/routes/projects.py +27 -0
- tripwire_pm-0.7.0/src/tripwire/ui/routes/sessions.py +22 -0
- tripwire_pm-0.7.0/src/tripwire/ui/routes/ws.py +58 -0
- tripwire_pm-0.7.0/src/tripwire/ui/server.py +211 -0
- tripwire_pm-0.7.0/src/tripwire/ui/services/__init__.py +1 -0
- tripwire_pm-0.7.0/src/tripwire/ui/services/container_service.py +111 -0
- tripwire_pm-0.7.0/src/tripwire/ui/services/enum_service.py +197 -0
- tripwire_pm-0.7.0/src/tripwire/ui/services/github_service.py +85 -0
- tripwire_pm-0.7.0/src/tripwire/ui/services/graph_service.py +441 -0
- tripwire_pm-0.7.0/src/tripwire/ui/services/issue_service.py +300 -0
- tripwire_pm-0.7.0/src/tripwire/ui/services/message_service.py +102 -0
- tripwire_pm-0.7.0/src/tripwire/ui/services/node_service.py +361 -0
- tripwire_pm-0.7.0/src/tripwire/ui/services/orchestration_service.py +236 -0
- tripwire_pm-0.7.0/src/tripwire/ui/services/pm_review_service.py +74 -0
- tripwire_pm-0.7.0/src/tripwire/ui/services/project_service.py +316 -0
- tripwire_pm-0.7.0/src/tripwire/ui/services/session_service.py +354 -0
- tripwire_pm-0.7.0/src/tripwire/ui/ws/__init__.py +1 -0
- tripwire_pm-0.7.0/src/tripwire/ui/ws/hub.py +171 -0
- tripwire_pm-0.7.0/tests/__init__.py +0 -0
- tripwire_pm-0.7.0/tests/conftest.py +244 -0
- tripwire_pm-0.7.0/tests/integration/__init__.py +0 -0
- tripwire_pm-0.7.0/tests/integration/test_init.py +487 -0
- tripwire_pm-0.7.0/tests/integration/test_next_key.py +263 -0
- tripwire_pm-0.7.0/tests/integration/test_read_commands.py +1000 -0
- tripwire_pm-0.7.0/tests/integration/test_scaffold.py +467 -0
- tripwire_pm-0.7.0/tests/integration/test_scaffold_alias.py +89 -0
- tripwire_pm-0.7.0/tests/integration/test_session_lifecycle.py +108 -0
- tripwire_pm-0.7.0/tests/integration/test_session_spawn_lifecycle.py +190 -0
- tripwire_pm-0.7.0/tests/integration/test_validate_fix_concurrent.py +151 -0
- tripwire_pm-0.7.0/tests/integration/test_workspace_integration.py +345 -0
- tripwire_pm-0.7.0/tests/ui/__init__.py +0 -0
- tripwire_pm-0.7.0/tests/ui/routes/__init__.py +0 -0
- tripwire_pm-0.7.0/tests/ui/routes/conftest.py +33 -0
- tripwire_pm-0.7.0/tests/ui/routes/test_v2_containers.py +66 -0
- tripwire_pm-0.7.0/tests/ui/routes/test_v2_github.py +68 -0
- tripwire_pm-0.7.0/tests/ui/routes/test_v2_messages.py +70 -0
- tripwire_pm-0.7.0/tests/ui/routes/test_v2_pm_reviews.py +83 -0
- tripwire_pm-0.7.0/tests/ui/routes/test_v2_stub_helper.py +36 -0
- tripwire_pm-0.7.0/tests/ui/services/__init__.py +0 -0
- tripwire_pm-0.7.0/tests/ui/services/test_enum_service.py +153 -0
- tripwire_pm-0.7.0/tests/ui/services/test_graph_service.py +195 -0
- tripwire_pm-0.7.0/tests/ui/services/test_issue_service.py +254 -0
- tripwire_pm-0.7.0/tests/ui/services/test_node_service.py +353 -0
- tripwire_pm-0.7.0/tests/ui/services/test_orchestration_service.py +193 -0
- tripwire_pm-0.7.0/tests/ui/services/test_project_service.py +417 -0
- tripwire_pm-0.7.0/tests/ui/services/test_session_service.py +221 -0
- tripwire_pm-0.7.0/tests/ui/test_config.py +115 -0
- tripwire_pm-0.7.0/tests/ui/test_dependencies.py +169 -0
- tripwire_pm-0.7.0/tests/ui/test_file_watcher.py +396 -0
- tripwire_pm-0.7.0/tests/ui/test_route_registration.py +97 -0
- tripwire_pm-0.7.0/tests/ui/test_server.py +158 -0
- tripwire_pm-0.7.0/tests/ui/test_static_serving.py +88 -0
- tripwire_pm-0.7.0/tests/ui/ws/__init__.py +0 -0
- tripwire_pm-0.7.0/tests/ui/ws/test_events.py +338 -0
- tripwire_pm-0.7.0/tests/ui/ws/test_hub.py +349 -0
- tripwire_pm-0.7.0/tests/ui/ws/test_ws_route.py +255 -0
- tripwire_pm-0.7.0/tests/unit/__init__.py +0 -0
- tripwire_pm-0.7.0/tests/unit/cli/__init__.py +0 -0
- tripwire_pm-0.7.0/tests/unit/cli/test_ui_cmd.py +119 -0
- tripwire_pm-0.7.0/tests/unit/test_agenda.py +116 -0
- tripwire_pm-0.7.0/tests/unit/test_branch_naming.py +132 -0
- tripwire_pm-0.7.0/tests/unit/test_ci_cli.py +98 -0
- tripwire_pm-0.7.0/tests/unit/test_cli_completion.py +47 -0
- tripwire_pm-0.7.0/tests/unit/test_cli_profiling.py +127 -0
- tripwire_pm-0.7.0/tests/unit/test_cli_verbose.py +129 -0
- tripwire_pm-0.7.0/tests/unit/test_concept_graph.py +149 -0
- tripwire_pm-0.7.0/tests/unit/test_context_budget.py +107 -0
- tripwire_pm-0.7.0/tests/unit/test_dependency_graph.py +165 -0
- tripwire_pm-0.7.0/tests/unit/test_enum_loader.py +105 -0
- tripwire_pm-0.7.0/tests/unit/test_freshness.py +273 -0
- tripwire_pm-0.7.0/tests/unit/test_git_helpers.py +136 -0
- tripwire_pm-0.7.0/tests/unit/test_graph_cache.py +476 -0
- tripwire_pm-0.7.0/tests/unit/test_graph_navigation.py +109 -0
- tripwire_pm-0.7.0/tests/unit/test_handoff_model.py +65 -0
- tripwire_pm-0.7.0/tests/unit/test_handoff_store.py +55 -0
- tripwire_pm-0.7.0/tests/unit/test_id_generator.py +52 -0
- tripwire_pm-0.7.0/tests/unit/test_init_workspace_flag.py +134 -0
- tripwire_pm-0.7.0/tests/unit/test_insights.py +118 -0
- tripwire_pm-0.7.0/tests/unit/test_insights_cli.py +240 -0
- tripwire_pm-0.7.0/tests/unit/test_issue_artifact_model.py +58 -0
- tripwire_pm-0.7.0/tests/unit/test_issue_artifact_store.py +75 -0
- tripwire_pm-0.7.0/tests/unit/test_issue_cli.py +142 -0
- tripwire_pm-0.7.0/tests/unit/test_key_allocator.py +167 -0
- tripwire_pm-0.7.0/tests/unit/test_key_prefix_extract.py +103 -0
- tripwire_pm-0.7.0/tests/unit/test_lint_rules.py +122 -0
- tripwire_pm-0.7.0/tests/unit/test_lint_workspace_rules.py +175 -0
- tripwire_pm-0.7.0/tests/unit/test_linter_framework.py +71 -0
- tripwire_pm-0.7.0/tests/unit/test_manifest_loader.py +92 -0
- tripwire_pm-0.7.0/tests/unit/test_manifest_model.py +78 -0
- tripwire_pm-0.7.0/tests/unit/test_merge_brief.py +151 -0
- tripwire_pm-0.7.0/tests/unit/test_models.py +409 -0
- tripwire_pm-0.7.0/tests/unit/test_node_model_workspace_fields.py +70 -0
- tripwire_pm-0.7.0/tests/unit/test_node_store.py +113 -0
- tripwire_pm-0.7.0/tests/unit/test_parser.py +96 -0
- tripwire_pm-0.7.0/tests/unit/test_paths_overrides.py +47 -0
- tripwire_pm-0.7.0/tests/unit/test_paths_workspace.py +39 -0
- tripwire_pm-0.7.0/tests/unit/test_phase_status_coherence.py +37 -0
- tripwire_pm-0.7.0/tests/unit/test_process_helpers.py +29 -0
- tripwire_pm-0.7.0/tests/unit/test_project_model.py +44 -0
- tripwire_pm-0.7.0/tests/unit/test_project_model_workspace_field.py +34 -0
- tripwire_pm-0.7.0/tests/unit/test_reference_parser.py +87 -0
- tripwire_pm-0.7.0/tests/unit/test_refresh.py +77 -0
- tripwire_pm-0.7.0/tests/unit/test_refs_cli.py +36 -0
- tripwire_pm-0.7.0/tests/unit/test_selectors.py +68 -0
- tripwire_pm-0.7.0/tests/unit/test_session_agenda.py +128 -0
- tripwire_pm-0.7.0/tests/unit/test_session_cli.py +223 -0
- tripwire_pm-0.7.0/tests/unit/test_session_complete.py +197 -0
- tripwire_pm-0.7.0/tests/unit/test_session_lifecycle_cli.py +421 -0
- tripwire_pm-0.7.0/tests/unit/test_session_monitor.py +92 -0
- tripwire_pm-0.7.0/tests/unit/test_session_monitor_cli.py +79 -0
- tripwire_pm-0.7.0/tests/unit/test_session_readiness.py +69 -0
- tripwire_pm-0.7.0/tests/unit/test_session_review.py +86 -0
- tripwire_pm-0.7.0/tests/unit/test_session_review_cli.py +150 -0
- tripwire_pm-0.7.0/tests/unit/test_session_spawn_cli.py +114 -0
- tripwire_pm-0.7.0/tests/unit/test_session_store.py +136 -0
- tripwire_pm-0.7.0/tests/unit/test_skill_examples.py +349 -0
- tripwire_pm-0.7.0/tests/unit/test_slash_command_templates.py +143 -0
- tripwire_pm-0.7.0/tests/unit/test_slash_frontmatter.py +105 -0
- tripwire_pm-0.7.0/tests/unit/test_slash_naming_convention.py +27 -0
- tripwire_pm-0.7.0/tests/unit/test_slash_no_deprecated_refs.py +51 -0
- tripwire_pm-0.7.0/tests/unit/test_smoke.py +10 -0
- tripwire_pm-0.7.0/tests/unit/test_spawn_config.py +133 -0
- tripwire_pm-0.7.0/tests/unit/test_spawn_models.py +43 -0
- tripwire_pm-0.7.0/tests/unit/test_status.py +85 -0
- tripwire_pm-0.7.0/tests/unit/test_store.py +275 -0
- tripwire_pm-0.7.0/tests/unit/test_stream_json.py +58 -0
- tripwire_pm-0.7.0/tests/unit/test_uuid_helpers.py +50 -0
- tripwire_pm-0.7.0/tests/unit/test_validator.py +1279 -0
- tripwire_pm-0.7.0/tests/unit/test_validator_coherence.py +129 -0
- tripwire_pm-0.7.0/tests/unit/test_validator_handoff.py +87 -0
- tripwire_pm-0.7.0/tests/unit/test_validator_issue_artifacts.py +74 -0
- tripwire_pm-0.7.0/tests/unit/test_validator_manifest.py +50 -0
- tripwire_pm-0.7.0/tests/unit/test_workspace_cli.py +208 -0
- tripwire_pm-0.7.0/tests/unit/test_workspace_copy.py +191 -0
- tripwire_pm-0.7.0/tests/unit/test_workspace_fork_promote.py +227 -0
- tripwire_pm-0.7.0/tests/unit/test_workspace_merge_resolve.py +183 -0
- tripwire_pm-0.7.0/tests/unit/test_workspace_model.py +61 -0
- tripwire_pm-0.7.0/tests/unit/test_workspace_pull.py +236 -0
- tripwire_pm-0.7.0/tests/unit/test_workspace_pull_conflict.py +174 -0
- tripwire_pm-0.7.0/tests/unit/test_workspace_push.py +182 -0
- tripwire_pm-0.7.0/tests/unit/test_workspace_store.py +115 -0
- tripwire_pm-0.7.0/tests/unit/test_workspace_sync.py +89 -0
- tripwire_pm-0.7.0/uv.lock +1124 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches: [main]
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
test:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
- uses: astral-sh/setup-uv@v3
|
|
14
|
+
with:
|
|
15
|
+
python-version: "3.13"
|
|
16
|
+
- name: Sync
|
|
17
|
+
run: uv sync
|
|
18
|
+
- name: Ruff check
|
|
19
|
+
run: uv run ruff check
|
|
20
|
+
- name: Ruff format check
|
|
21
|
+
run: uv run ruff format --check
|
|
22
|
+
- name: Pytest
|
|
23
|
+
run: uv run pytest tests/ -q
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags: ["v*"]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
publish:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
environment: pypi
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
- uses: astral-sh/setup-uv@v3
|
|
14
|
+
with:
|
|
15
|
+
python-version: "3.13"
|
|
16
|
+
- name: Build
|
|
17
|
+
run: uv build
|
|
18
|
+
- name: Publish
|
|
19
|
+
env:
|
|
20
|
+
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
|
|
21
|
+
run: uv publish
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.so
|
|
6
|
+
.Python
|
|
7
|
+
build/
|
|
8
|
+
dist/
|
|
9
|
+
*.egg-info/
|
|
10
|
+
.eggs/
|
|
11
|
+
*.egg
|
|
12
|
+
|
|
13
|
+
# Virtual environments
|
|
14
|
+
.venv/
|
|
15
|
+
venv/
|
|
16
|
+
env/
|
|
17
|
+
|
|
18
|
+
# uv
|
|
19
|
+
.python-version
|
|
20
|
+
|
|
21
|
+
# Tooling caches
|
|
22
|
+
.pytest_cache/
|
|
23
|
+
.ruff_cache/
|
|
24
|
+
.mypy_cache/
|
|
25
|
+
.tox/
|
|
26
|
+
.coverage
|
|
27
|
+
.coverage.*
|
|
28
|
+
htmlcov/
|
|
29
|
+
coverage.xml
|
|
30
|
+
*.cover
|
|
31
|
+
|
|
32
|
+
# IDE
|
|
33
|
+
.idea/
|
|
34
|
+
.vscode/
|
|
35
|
+
*.swp
|
|
36
|
+
*.swo
|
|
37
|
+
.DS_Store
|
|
38
|
+
|
|
39
|
+
# Editor backups
|
|
40
|
+
*~
|
|
41
|
+
*.bak
|
|
42
|
+
|
|
43
|
+
# Project-specific
|
|
44
|
+
tmp/
|
|
45
|
+
|
|
46
|
+
# UI frontend build artifacts
|
|
47
|
+
src/tripwire/ui/static/
|
|
48
|
+
src/tripwire/ui/frontend/node_modules/
|
|
49
|
+
src/tripwire/ui/frontend/dist/
|
|
50
|
+
|
|
51
|
+
# Worktrees
|
|
52
|
+
.worktrees/
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Pre-commit hooks for keel.
|
|
2
|
+
#
|
|
3
|
+
# Install once per clone:
|
|
4
|
+
# make pre-commit-install
|
|
5
|
+
#
|
|
6
|
+
# Run on all files (not just staged):
|
|
7
|
+
# make pre-commit-run
|
|
8
|
+
#
|
|
9
|
+
# Pinned versions are bumped manually when the in-project tooling moves
|
|
10
|
+
# in pyproject.toml. NO pytest hook — too slow per commit; gate via CI
|
|
11
|
+
# or `make check`.
|
|
12
|
+
repos:
|
|
13
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
14
|
+
# Keep this in sync with the ruff version in pyproject.toml so the
|
|
15
|
+
# hook formatting matches `make format` exactly.
|
|
16
|
+
rev: v0.15.9
|
|
17
|
+
hooks:
|
|
18
|
+
- id: ruff-check
|
|
19
|
+
args: [--fix]
|
|
20
|
+
- id: ruff-format
|
|
21
|
+
|
|
22
|
+
- repo: https://github.com/codespell-project/codespell
|
|
23
|
+
rev: v2.3.0
|
|
24
|
+
hooks:
|
|
25
|
+
- id: codespell
|
|
26
|
+
# Match the scope of `make lint`: src/ and tests/ only.
|
|
27
|
+
# Docs use product names (iTerm, etc.) that codespell flags.
|
|
28
|
+
files: ^(src|tests)/
|
|
29
|
+
args: [--skip=uv.lock]
|
|
30
|
+
|
|
31
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
32
|
+
rev: v5.0.0
|
|
33
|
+
hooks:
|
|
34
|
+
- id: trailing-whitespace
|
|
35
|
+
- id: end-of-file-fixer
|
|
36
|
+
- id: check-yaml
|
|
37
|
+
# Many shipped templates and examples are frontmatter+body files
|
|
38
|
+
# (delimited with `---`), which the YAML parser interprets as
|
|
39
|
+
# multi-document. Allow that, and skip Jinja2 templates entirely.
|
|
40
|
+
args: [--allow-multiple-documents]
|
|
41
|
+
exclude: |
|
|
42
|
+
(?x)^(
|
|
43
|
+
src/keel/templates/.*\.j2|
|
|
44
|
+
src/keel/templates/skills/project-manager/examples/.*\.yaml|
|
|
45
|
+
src/keel/templates/agent_templates/.*\.yaml
|
|
46
|
+
)$
|
|
47
|
+
- id: check-added-large-files
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Seido AI Ltd
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
.PHONY: install sync test lint format check clean build pre-commit-install pre-commit-run
|
|
2
|
+
|
|
3
|
+
# ==============================================================================
|
|
4
|
+
# Installation
|
|
5
|
+
# ==============================================================================
|
|
6
|
+
|
|
7
|
+
install:
|
|
8
|
+
@command -v uv >/dev/null 2>&1 || { echo "uv is not installed. Install from https://docs.astral.sh/uv/"; exit 1; }
|
|
9
|
+
uv sync
|
|
10
|
+
|
|
11
|
+
sync: install
|
|
12
|
+
|
|
13
|
+
# ==============================================================================
|
|
14
|
+
# Testing
|
|
15
|
+
# ==============================================================================
|
|
16
|
+
|
|
17
|
+
test:
|
|
18
|
+
uv run pytest
|
|
19
|
+
|
|
20
|
+
test-unit:
|
|
21
|
+
uv run pytest tests/unit -v
|
|
22
|
+
|
|
23
|
+
test-integration:
|
|
24
|
+
uv run pytest tests/integration -v
|
|
25
|
+
|
|
26
|
+
# ==============================================================================
|
|
27
|
+
# Code Quality
|
|
28
|
+
# ==============================================================================
|
|
29
|
+
|
|
30
|
+
lint:
|
|
31
|
+
uv run ruff check src tests
|
|
32
|
+
uv run codespell src tests
|
|
33
|
+
|
|
34
|
+
format:
|
|
35
|
+
uv run ruff format src tests
|
|
36
|
+
|
|
37
|
+
format-check:
|
|
38
|
+
uv run ruff format --check src tests
|
|
39
|
+
|
|
40
|
+
# Run every quality gate (lint + format + tests)
|
|
41
|
+
check: lint format-check test
|
|
42
|
+
|
|
43
|
+
# ==============================================================================
|
|
44
|
+
# Build
|
|
45
|
+
# ==============================================================================
|
|
46
|
+
|
|
47
|
+
build:
|
|
48
|
+
uv build
|
|
49
|
+
|
|
50
|
+
clean:
|
|
51
|
+
rm -rf .pytest_cache .ruff_cache dist build *.egg-info
|
|
52
|
+
find . -type d -name __pycache__ -exec rm -rf {} +
|
|
53
|
+
|
|
54
|
+
# ==============================================================================
|
|
55
|
+
# Pre-commit
|
|
56
|
+
# ==============================================================================
|
|
57
|
+
|
|
58
|
+
# Install pre-commit git hook (one-time per clone)
|
|
59
|
+
pre-commit-install:
|
|
60
|
+
uv run pre-commit install
|
|
61
|
+
|
|
62
|
+
# Run all pre-commit hooks across the whole repo (not just staged files)
|
|
63
|
+
pre-commit-run:
|
|
64
|
+
uv run pre-commit run --all-files
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: tripwire-pm
|
|
3
|
+
Version: 0.7.0
|
|
4
|
+
Summary: Git-native project management with concept graph for AI agents
|
|
5
|
+
Author: Seido AI Ltd
|
|
6
|
+
License: MIT License
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2026 Seido AI Ltd
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in all
|
|
18
|
+
copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
|
+
SOFTWARE.
|
|
27
|
+
License-File: LICENSE
|
|
28
|
+
Requires-Python: <3.14,>=3.10
|
|
29
|
+
Requires-Dist: click<9.0,>=8.1
|
|
30
|
+
Requires-Dist: docker<8.0,>=7.0
|
|
31
|
+
Requires-Dist: fastapi<1.0,>=0.115
|
|
32
|
+
Requires-Dist: jinja2<4.0,>=3.1
|
|
33
|
+
Requires-Dist: pydantic<3.0,>=2.0
|
|
34
|
+
Requires-Dist: pyyaml<7.0,>=6.0
|
|
35
|
+
Requires-Dist: rich<14.0,>=13.0
|
|
36
|
+
Requires-Dist: uvicorn[standard]<1.0,>=0.30
|
|
37
|
+
Requires-Dist: watchdog<6.0,>=4.0
|
|
38
|
+
Requires-Dist: websockets<14.0,>=12.0
|
|
39
|
+
Provides-Extra: projects
|
|
40
|
+
Requires-Dist: click<9.0,>=8.1; extra == 'projects'
|
|
41
|
+
Requires-Dist: jinja2<4.0,>=3.1; extra == 'projects'
|
|
42
|
+
Requires-Dist: pydantic<3.0,>=2.0; extra == 'projects'
|
|
43
|
+
Requires-Dist: pyyaml<7.0,>=6.0; extra == 'projects'
|
|
44
|
+
Requires-Dist: rich<14.0,>=13.0; extra == 'projects'
|