engsys 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +202 -0
- package/core/agents/aaron.md +152 -0
- package/core/agents/bert.md +115 -0
- package/core/agents/isabelle.md +136 -0
- package/core/agents/jody.md +150 -0
- package/core/agents/leith.md +111 -0
- package/core/agents/marcelo.md +282 -0
- package/core/agents/melvin.md +101 -0
- package/core/agents/nyx.md +152 -0
- package/core/agents/otto.md +168 -0
- package/core/agents/patricia.md +283 -0
- package/core/commands/design-audit-local.md +155 -0
- package/core/commands/design-audit.md +235 -0
- package/core/commands/design-critique.md +96 -0
- package/core/commands/file-issue.md +22 -0
- package/core/commands/generate-project.md +45 -0
- package/core/commands/implement-issue.md +37 -0
- package/core/commands/implement-project.md +40 -0
- package/core/commands/naturalize.md +61 -0
- package/core/commands/pre-push.md +29 -0
- package/core/commands/prep-review-collect.md +130 -0
- package/core/commands/prep-review-finalize.md +121 -0
- package/core/commands/prep-review-publish.md +113 -0
- package/core/commands/prep-review.md +65 -0
- package/core/commands/project-closeout.md +25 -0
- package/core/skills/agentic-eval/SKILL.md +195 -0
- package/core/skills/chrome-devtools/SKILL.md +97 -0
- package/core/skills/code-review/SKILL.md +26 -0
- package/core/skills/gh-cli/SKILL.md +2202 -0
- package/core/skills/git-commit/SKILL.md +124 -0
- package/core/skills/git-workflow-agents/SKILL.md +462 -0
- package/core/skills/git-workflow-agents/reference.md +220 -0
- package/core/skills/github-actions/SKILL.md +190 -0
- package/core/skills/github-issues/SKILL.md +154 -0
- package/core/skills/llm-structured-outputs/SKILL.md +323 -0
- package/core/skills/llm-structured-outputs/references/provider-details.md +392 -0
- package/core/skills/pre-push/SKILL.md +115 -0
- package/core/skills/refactor/SKILL.md +645 -0
- package/core/skills/web-design-reviewer/SKILL.md +371 -0
- package/core/skills/webapp-testing/SKILL.md +127 -0
- package/core/skills/webapp-testing/test-helper.js +56 -0
- package/core/templates/CLAUDE.md.tmpl +98 -0
- package/core/templates/adr-template.md +67 -0
- package/core/templates/gh-issue-templates/bug.md +39 -0
- package/core/templates/gh-issue-templates/content.md +42 -0
- package/core/templates/gh-issue-templates/enhancement.md +36 -0
- package/core/templates/gh-issue-templates/feature.md +39 -0
- package/core/templates/gh-issue-templates/infrastructure.md +41 -0
- package/core/templates/post-edit-reminders.sh.tmpl +19 -0
- package/core/templates/settings.json.tmpl +90 -0
- package/core/templates/settings.local.json.tmpl +3 -0
- package/core/workflows/agent-implementation-workflow.md +346 -0
- package/core/workflows/generate-project.md +258 -0
- package/core/workflows/implement-project-workflow.md +190 -0
- package/core/workflows/issue-tracking.md +89 -0
- package/core/workflows/project-closeout-ceremony.md +77 -0
- package/core/workflows/review-workflow.md +266 -0
- package/engsys.config.example.yaml +46 -0
- package/install +202 -0
- package/lessons-library/README.md +80 -0
- package/lessons-library/async-callbacks-verify-liveness.md +15 -0
- package/lessons-library/change-isnt-done-until-every-surface-updated.md +15 -0
- package/lessons-library/claim-then-act-for-irreversible-ops.md +16 -0
- package/lessons-library/co-commit-entangled-work.md +15 -0
- package/lessons-library/dependabot-triage-playbook.md +17 -0
- package/lessons-library/deploy-by-digest-and-verify-the-running-revision.md +15 -0
- package/lessons-library/enforce-your-guarantee-at-your-boundary.md +16 -0
- package/lessons-library/gate-changes-on-measurement-not-vibes.md +15 -0
- package/lessons-library/iac-first-no-console-changes.md +15 -0
- package/lessons-library/independent-objective-review-gate.md +15 -0
- package/lessons-library/keep-an-immutable-source-of-truth.md +15 -0
- package/lessons-library/long-agent-runs-checkpoint-not-poll.md +15 -0
- package/lessons-library/model-identity-with-stable-ids-and-provenance.md +15 -0
- package/lessons-library/operator-choices-are-first-class.md +15 -0
- package/lessons-library/prefer-tool-enforced-structured-output.md +15 -0
- package/lessons-library/prove-causation-before-acting.md +15 -0
- package/lessons-library/re-read-state-before-acting.md +14 -0
- package/lessons-library/read-layer-tolerates-unbackfilled-rows.md +15 -0
- package/lessons-library/shell-safety-pipefail-and-validate-before-teardown.md +14 -0
- package/lessons-library/shift-correctness-left-and-distrust-false-greens.md +15 -0
- package/lessons-library/stray-control-bytes-hide-changes.md +14 -0
- package/lessons-library/tests-can-assert-the-bug.md +15 -0
- package/lessons-library/verify-ground-truth-not-reports.md +15 -0
- package/lessons-library/worktrees-need-bootstrap-from-origin-main.md +15 -0
- package/lib/commands.js +356 -0
- package/lib/generate-team-avatars.mjs +251 -0
- package/lib/manifest.js +155 -0
- package/lib/render.js +135 -0
- package/lib/selftest.js +90 -0
- package/lib/util.js +89 -0
- package/lib/yaml.js +156 -0
- package/optional-agents/gary.md +86 -0
- package/optional-agents/jos.md +136 -0
- package/optional-agents/sandy.md +101 -0
- package/optional-agents/steve.md +161 -0
- package/package.json +43 -0
- package/stacks/cloud/aws/claude.fragment.md +17 -0
- package/stacks/cloud/aws/settings.fragment.json +39 -0
- package/stacks/cloud/aws/skills/aws-deployment-preflight/SKILL.md +165 -0
- package/stacks/cloud/aws/skills/cloud-architecture-aws/SKILL.md +265 -0
- package/stacks/cloud/azure/claude.fragment.md +17 -0
- package/stacks/cloud/azure/settings.fragment.json +45 -0
- package/stacks/cloud/azure/skills/azure-deployment-preflight/SKILL.md +175 -0
- package/stacks/cloud/azure/skills/cloud-architecture-azure/SKILL.md +211 -0
- package/stacks/cloud/cloudflare/claude.fragment.md +21 -0
- package/stacks/cloud/cloudflare/settings.fragment.json +31 -0
- package/stacks/cloud/cloudflare/skills/cloud-architecture-cloudflare/SKILL.md +294 -0
- package/stacks/cloud/cloudflare/skills/cloudflare-deployment-preflight/SKILL.md +175 -0
- package/stacks/cloud/gcp/claude.fragment.md +17 -0
- package/stacks/cloud/gcp/settings.fragment.json +40 -0
- package/stacks/cloud/gcp/skills/cloud-architecture-gcp/SKILL.md +208 -0
- package/stacks/cloud/gcp/skills/gcp-deployment-preflight/SKILL.md +137 -0
- package/stacks/db/mongo/skills/mongo-conventions/SKILL.md +96 -0
- package/stacks/db/prisma/claude.fragment.md +49 -0
- package/stacks/db/prisma/skills/docker-database-package-copy/SKILL.md +44 -0
- package/stacks/db/prisma/skills/prisma-conventions/SKILL.md +37 -0
- package/stacks/domain/mobile-growth/skills/apple-ads/SKILL.md +184 -0
- package/stacks/domain/mobile-growth/skills/apple-ads/references/benchmark-notes.md +47 -0
- package/stacks/domain/mobile-growth/skills/apple-ads/references/official-links.md +53 -0
- package/stacks/domain/mobile-growth/skills/google-play-growth/SKILL.md +197 -0
- package/stacks/domain/mobile-growth/skills/google-play-growth/references/benchmark-notes.md +47 -0
- package/stacks/domain/mobile-growth/skills/google-play-growth/references/official-links.md +45 -0
- package/stacks/iac/bicep/claude.fragment.md +14 -0
- package/stacks/iac/bicep/settings.fragment.json +20 -0
- package/stacks/iac/bicep/skills/iac-bicep/SKILL.md +113 -0
- package/stacks/iac/cdk/claude.fragment.md +14 -0
- package/stacks/iac/cdk/settings.fragment.json +23 -0
- package/stacks/iac/cdk/skills/iac-cdk/SKILL.md +104 -0
- package/stacks/iac/terraform/claude.fragment.md +13 -0
- package/stacks/iac/terraform/settings.fragment.json +25 -0
- package/stacks/iac/terraform/skills/iac-terraform/SKILL.md +93 -0
- package/stacks/iac/terraform/skills/terraform-conventions/SKILL.md +87 -0
- package/stacks/lang/kotlin/skills/android-testing/SKILL.md +263 -0
- package/stacks/lang/kotlin/skills/jetpack-compose/SKILL.md +264 -0
- package/stacks/lang/kotlin/skills/kotlin-coroutines/SKILL.md +329 -0
- package/stacks/lang/python/skills/python-conventions/SKILL.md +61 -0
- package/stacks/lang/shell/skills/shell-scripting/SKILL.md +110 -0
- package/stacks/lang/swift/skills/swift-concurrency/SKILL.md +423 -0
- package/stacks/lang/swift/skills/swift-concurrency/references/approachable-concurrency.md +80 -0
- package/stacks/lang/swift/skills/swift-concurrency/references/concurrency-patterns.md +233 -0
- package/stacks/lang/swift/skills/swift-concurrency/references/swiftui-concurrency.md +187 -0
- package/stacks/lang/swift/skills/swift-concurrency/references/synchronization-primitives.md +341 -0
- package/stacks/lang/swift/skills/swift-testing/SKILL.md +497 -0
- package/stacks/lang/swift/skills/swift-testing/references/testing-advanced.md +106 -0
- package/stacks/lang/swift/skills/swift-testing/references/testing-patterns.md +504 -0
- package/stacks/lang/swift/skills/swiftdata/SKILL.md +334 -0
- package/stacks/lang/swift/skills/swiftdata/references/core-data-coexistence.md +504 -0
- package/stacks/lang/swift/skills/swiftdata/references/swiftdata-advanced.md +975 -0
- package/stacks/lang/swift/skills/swiftdata/references/swiftdata-queries.md +675 -0
- package/stacks/lang/swift/skills/swiftui-patterns/SKILL.md +371 -0
- package/stacks/lang/swift/skills/swiftui-patterns/references/architecture-patterns.md +486 -0
- package/stacks/lang/swift/skills/swiftui-patterns/references/deprecated-migration.md +1097 -0
- package/stacks/lang/swift/skills/swiftui-patterns/references/design-polish.md +780 -0
- package/stacks/lang/swift/skills/swiftui-patterns/references/platform-and-sharing.md +696 -0
- package/stacks/lang/typescript/skills/typescript-conventions/SKILL.md +91 -0
- package/stacks/platform/android/claude.fragment.md +40 -0
- package/stacks/platform/android/hooks/pre-push-gradle.sh +70 -0
- package/stacks/platform/android/settings.fragment.json +13 -0
- package/stacks/platform/android/skills/android-build-conventions/SKILL.md +247 -0
- package/stacks/platform/ios/claude.fragment.md +24 -0
- package/stacks/platform/ios/hooks/pre-push-xcodebuild.sh +82 -0
- package/stacks/platform/ios/settings.fragment.json +21 -0
- package/stacks/platform/ios/skills/xcodebuildmcp-simulator-logs/SKILL.md +76 -0
- package/stacks/platform/web/skills/frontend-testing/SKILL.md +246 -0
- package/stacks/platform/web/skills/react-conventions/SKILL.md +261 -0
- package/stacks/platform/web/skills/web-platform-conventions/SKILL.md +55 -0
- package/stacks/tooling/issue-tracker-github/claude.fragment.md +10 -0
- package/stacks/tooling/issue-tracker-github/settings.fragment.json +24 -0
- package/stacks/tooling/issue-tracker-github/skills/issue-tracker-github/SKILL.md +278 -0
- package/stacks/tooling/issue-tracker-linear/claude.fragment.md +17 -0
- package/stacks/tooling/issue-tracker-linear/settings.fragment.json +9 -0
- package/stacks/tooling/issue-tracker-linear/skills/issue-tracker-linear/SKILL.md +183 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "ADR-NNN: [Decision Title]"
|
|
3
|
+
status: "Proposed"
|
|
4
|
+
date: "YYYY-MM-DD"
|
|
5
|
+
authors: "[Stakeholder Names/Roles]"
|
|
6
|
+
tags: ["architecture", "decision"]
|
|
7
|
+
supersedes: ""
|
|
8
|
+
superseded_by: ""
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# ADR-NNN: [Decision Title]
|
|
12
|
+
|
|
13
|
+
<!--
|
|
14
|
+
Architecture Decision Record. Record important technical decisions so future developers
|
|
15
|
+
understand *why* things are the way they are.
|
|
16
|
+
|
|
17
|
+
Numbering: use the next sequential 3-digit number (ADR-001, ADR-002, ...).
|
|
18
|
+
Filename convention: ADR-NNN-title-slug.md
|
|
19
|
+
Store under your project's ADR directory (e.g. docs/architecture/adr/).
|
|
20
|
+
-->
|
|
21
|
+
|
|
22
|
+
## Status
|
|
23
|
+
|
|
24
|
+
**Proposed** | Accepted | Rejected | Superseded | Deprecated
|
|
25
|
+
|
|
26
|
+
## Context
|
|
27
|
+
|
|
28
|
+
[Problem statement, technical constraints, business requirements, and environmental factors requiring this decision.]
|
|
29
|
+
|
|
30
|
+
## Decision
|
|
31
|
+
|
|
32
|
+
[Chosen solution with clear rationale for selection.]
|
|
33
|
+
|
|
34
|
+
## Consequences
|
|
35
|
+
|
|
36
|
+
### Positive
|
|
37
|
+
|
|
38
|
+
- **POS-001**: [Beneficial outcome]
|
|
39
|
+
- **POS-002**: [Another benefit]
|
|
40
|
+
|
|
41
|
+
### Negative
|
|
42
|
+
|
|
43
|
+
- **NEG-001**: [Trade-off or limitation]
|
|
44
|
+
- **NEG-002**: [Risk or challenge]
|
|
45
|
+
|
|
46
|
+
## Alternatives Considered
|
|
47
|
+
|
|
48
|
+
<!-- Document at least 2 alternatives with clear rejection reasons — there are always alternatives. -->
|
|
49
|
+
|
|
50
|
+
### [Alternative 1 Name]
|
|
51
|
+
|
|
52
|
+
- **Description**: [Brief technical description]
|
|
53
|
+
- **Rejection Reason**: [Why not selected]
|
|
54
|
+
|
|
55
|
+
### [Alternative 2 Name]
|
|
56
|
+
|
|
57
|
+
- **Description**: [Brief technical description]
|
|
58
|
+
- **Rejection Reason**: [Why not selected]
|
|
59
|
+
|
|
60
|
+
## Implementation Notes
|
|
61
|
+
|
|
62
|
+
- **IMP-001**: [Key implementation consideration]
|
|
63
|
+
- **IMP-002**: [Migration or rollout strategy]
|
|
64
|
+
|
|
65
|
+
## References
|
|
66
|
+
|
|
67
|
+
- **REF-001**: [Related ADRs, docs, or external resources]
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Bug Report
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
|
|
5
|
+
<!-- Clear description of what's broken -->
|
|
6
|
+
|
|
7
|
+
## Steps to Reproduce
|
|
8
|
+
|
|
9
|
+
1.
|
|
10
|
+
2.
|
|
11
|
+
3.
|
|
12
|
+
|
|
13
|
+
## Expected Behavior
|
|
14
|
+
|
|
15
|
+
<!-- What should happen -->
|
|
16
|
+
|
|
17
|
+
## Actual Behavior
|
|
18
|
+
|
|
19
|
+
<!-- What actually happens -->
|
|
20
|
+
|
|
21
|
+
## Environment
|
|
22
|
+
|
|
23
|
+
- **Platform**:
|
|
24
|
+
- **Version / Build**:
|
|
25
|
+
- **Relevant config**:
|
|
26
|
+
|
|
27
|
+
## Screenshots / Logs
|
|
28
|
+
|
|
29
|
+
<!-- If applicable -->
|
|
30
|
+
|
|
31
|
+
## Technical Notes
|
|
32
|
+
|
|
33
|
+
<!-- Investigation findings, suspected cause, relevant code paths -->
|
|
34
|
+
|
|
35
|
+
## Acceptance Criteria
|
|
36
|
+
|
|
37
|
+
- [ ] Bug is fixed
|
|
38
|
+
- [ ] No regression in related functionality
|
|
39
|
+
- [ ] Tests added if applicable
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Content Update
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
|
|
5
|
+
<!-- What content needs to be added/changed -->
|
|
6
|
+
|
|
7
|
+
## Content Type
|
|
8
|
+
|
|
9
|
+
- [ ] Copy/Text
|
|
10
|
+
- [ ] Prompts/Templates
|
|
11
|
+
- [ ] Error messages
|
|
12
|
+
- [ ] UI labels
|
|
13
|
+
- [ ] Documentation
|
|
14
|
+
|
|
15
|
+
## Current Content
|
|
16
|
+
|
|
17
|
+
<!-- Existing text if updating -->
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## New Content
|
|
24
|
+
|
|
25
|
+
<!-- The new or updated content -->
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Location
|
|
32
|
+
|
|
33
|
+
<!-- Where this content appears -->
|
|
34
|
+
|
|
35
|
+
- **File(s)**:
|
|
36
|
+
- **Screen/Component**:
|
|
37
|
+
|
|
38
|
+
## Acceptance Criteria
|
|
39
|
+
|
|
40
|
+
- [ ] Content updated
|
|
41
|
+
- [ ] No typos or grammatical errors
|
|
42
|
+
- [ ] Tone matches brand voice
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Enhancement
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
|
|
5
|
+
<!-- What existing feature needs improvement -->
|
|
6
|
+
|
|
7
|
+
## Current Behavior
|
|
8
|
+
|
|
9
|
+
<!-- How it works now -->
|
|
10
|
+
|
|
11
|
+
## Proposed Improvement
|
|
12
|
+
|
|
13
|
+
<!-- How it should work -->
|
|
14
|
+
|
|
15
|
+
## Motivation
|
|
16
|
+
|
|
17
|
+
<!-- Why this improvement is needed -->
|
|
18
|
+
|
|
19
|
+
## Technical Approach
|
|
20
|
+
|
|
21
|
+
<!-- Suggested implementation -->
|
|
22
|
+
|
|
23
|
+
## Files to Modify
|
|
24
|
+
|
|
25
|
+
<!-- Known files that will need changes -->
|
|
26
|
+
|
|
27
|
+
## Acceptance Criteria
|
|
28
|
+
|
|
29
|
+
- [ ]
|
|
30
|
+
- [ ]
|
|
31
|
+
|
|
32
|
+
## Breaking Changes
|
|
33
|
+
|
|
34
|
+
<!-- Any breaking changes to existing functionality -->
|
|
35
|
+
|
|
36
|
+
None / List them
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Feature Request
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
|
|
5
|
+
<!-- What feature needs to be built -->
|
|
6
|
+
|
|
7
|
+
## User Story
|
|
8
|
+
|
|
9
|
+
As a [type of user], I want [goal] so that [benefit].
|
|
10
|
+
|
|
11
|
+
## Requirements
|
|
12
|
+
|
|
13
|
+
<!-- Detailed requirements -->
|
|
14
|
+
|
|
15
|
+
## UI/UX Considerations
|
|
16
|
+
|
|
17
|
+
<!-- Any design notes, mockups, or UX requirements -->
|
|
18
|
+
|
|
19
|
+
## Technical Approach
|
|
20
|
+
|
|
21
|
+
<!-- Suggested implementation approach -->
|
|
22
|
+
|
|
23
|
+
## API Changes
|
|
24
|
+
|
|
25
|
+
<!-- Any new endpoints or modifications needed -->
|
|
26
|
+
|
|
27
|
+
## Files to Modify
|
|
28
|
+
|
|
29
|
+
<!-- Known files that will need changes -->
|
|
30
|
+
|
|
31
|
+
## Acceptance Criteria
|
|
32
|
+
|
|
33
|
+
- [ ]
|
|
34
|
+
- [ ]
|
|
35
|
+
- [ ]
|
|
36
|
+
|
|
37
|
+
## Out of Scope
|
|
38
|
+
|
|
39
|
+
<!-- What this feature does NOT include -->
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Infrastructure Change
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
|
|
5
|
+
<!-- What infrastructure change is needed -->
|
|
6
|
+
|
|
7
|
+
## Type
|
|
8
|
+
|
|
9
|
+
- [ ] Infrastructure-as-Code (Terraform / Bicep / CloudFormation / Pulumi / etc.)
|
|
10
|
+
- [ ] CI/CD Pipeline
|
|
11
|
+
- [ ] Cloud Resource
|
|
12
|
+
- [ ] Environment Variable
|
|
13
|
+
- [ ] Secrets Management
|
|
14
|
+
- [ ] Monitoring/Alerting
|
|
15
|
+
|
|
16
|
+
## Current State
|
|
17
|
+
|
|
18
|
+
<!-- How it's configured now -->
|
|
19
|
+
|
|
20
|
+
## Desired State
|
|
21
|
+
|
|
22
|
+
<!-- How it should be configured -->
|
|
23
|
+
|
|
24
|
+
## Files to Modify
|
|
25
|
+
|
|
26
|
+
<!-- IaC files, workflows, etc. -->
|
|
27
|
+
|
|
28
|
+
## Deployment Notes
|
|
29
|
+
|
|
30
|
+
<!-- Any special deployment considerations -->
|
|
31
|
+
|
|
32
|
+
## Rollback Plan
|
|
33
|
+
|
|
34
|
+
<!-- How to revert if something goes wrong -->
|
|
35
|
+
|
|
36
|
+
## Acceptance Criteria
|
|
37
|
+
|
|
38
|
+
- [ ]
|
|
39
|
+
- [ ]
|
|
40
|
+
- [ ] IaC change validates successfully
|
|
41
|
+
- [ ] No service disruption during deployment
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Post-edit reminders — one-time nudges after edits to sensitive files.
|
|
3
|
+
# Wired in .claude/settings.json under hooks.PostToolUse (Edit|Write|MultiEdit).
|
|
4
|
+
# Keep this list short and high-signal: invariants accrete as the codebase grows.
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
# The hook receives the tool payload on stdin as JSON. Extract the edited file's path.
|
|
8
|
+
payload="$(cat || true)"
|
|
9
|
+
file_path="$(printf '%s' "$payload" | grep -oE '"file_path"[[:space:]]*:[[:space:]]*"[^"]+"' | head -1 | sed -E 's/.*:[[:space:]]*"([^"]+)"/\1/')"
|
|
10
|
+
[ -z "${file_path:-}" ] && exit 0
|
|
11
|
+
|
|
12
|
+
# Per-project reminder cases. Each case matches a path glob and echoes a short nudge.
|
|
13
|
+
# The installer injects project-specific cases below.
|
|
14
|
+
case "$file_path" in
|
|
15
|
+
{{REMINDER_CASES}}
|
|
16
|
+
*) ;;
|
|
17
|
+
esac
|
|
18
|
+
|
|
19
|
+
exit 0
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(git status:*)",
|
|
5
|
+
"Bash(git diff:*)",
|
|
6
|
+
"Bash(git log:*)",
|
|
7
|
+
"Bash(git show:*)",
|
|
8
|
+
"Bash(git branch:*)",
|
|
9
|
+
"Bash(git rev-parse:*)",
|
|
10
|
+
"Bash(git remote:*)",
|
|
11
|
+
"Bash(git config --get:*)",
|
|
12
|
+
"Bash(git config --list:*)",
|
|
13
|
+
"Bash(git ls-files:*)",
|
|
14
|
+
"Bash(git worktree list:*)",
|
|
15
|
+
"Bash(git stash list:*)",
|
|
16
|
+
"Bash(git blame:*)",
|
|
17
|
+
"Bash(git fetch:*)",
|
|
18
|
+
"Bash(git pull --ff-only:*)",
|
|
19
|
+
|
|
20
|
+
"Bash(gh auth status:*)",
|
|
21
|
+
"Bash(gh issue view:*)",
|
|
22
|
+
"Bash(gh issue list:*)",
|
|
23
|
+
"Bash(gh pr view:*)",
|
|
24
|
+
"Bash(gh pr list:*)",
|
|
25
|
+
"Bash(gh pr checks:*)",
|
|
26
|
+
"Bash(gh pr diff:*)",
|
|
27
|
+
"Bash(gh pr status:*)",
|
|
28
|
+
"Bash(gh run list:*)",
|
|
29
|
+
"Bash(gh run view:*)",
|
|
30
|
+
"Bash(gh run watch:*)",
|
|
31
|
+
"Bash(gh repo view:*)",
|
|
32
|
+
"Bash(gh repo list:*)",
|
|
33
|
+
"Bash(gh project list:*)",
|
|
34
|
+
"Bash(gh project view:*)",
|
|
35
|
+
"Bash(gh project item-list:*)",
|
|
36
|
+
"Bash(gh release list:*)",
|
|
37
|
+
"Bash(gh release view:*)",
|
|
38
|
+
"Bash(gh label list:*)",
|
|
39
|
+
"Bash(gh search:*)",
|
|
40
|
+
"Bash(gh workflow list:*)",
|
|
41
|
+
"Bash(gh workflow view:*)",
|
|
42
|
+
|
|
43
|
+
"Bash(docker ps:*)",
|
|
44
|
+
"Bash(docker images:*)",
|
|
45
|
+
"Bash(docker logs:*)",
|
|
46
|
+
"Bash(docker inspect:*)",
|
|
47
|
+
"Bash(docker compose ps:*)",
|
|
48
|
+
"Bash(docker compose logs:*)",
|
|
49
|
+
"Bash(docker version:*)",
|
|
50
|
+
"Bash(docker info:*)",
|
|
51
|
+
|
|
52
|
+
"Bash(rg:*)",
|
|
53
|
+
"Bash(find:*)",
|
|
54
|
+
"Bash(jq:*)",
|
|
55
|
+
"Bash(tail:*)",
|
|
56
|
+
"Bash(wc:*)",
|
|
57
|
+
"Bash(sort:*)",
|
|
58
|
+
"Bash(uniq:*)",
|
|
59
|
+
"Bash(tree:*)",
|
|
60
|
+
"Bash(which:*)"
|
|
61
|
+
],
|
|
62
|
+
|
|
63
|
+
"deny": [
|
|
64
|
+
"Bash(git push origin main)",
|
|
65
|
+
"Bash(git push origin main:*)",
|
|
66
|
+
"Bash(git push origin HEAD:main:*)",
|
|
67
|
+
"Bash(git push :main:*)",
|
|
68
|
+
"Bash(git push -f:*)",
|
|
69
|
+
"Bash(git push --force:*)",
|
|
70
|
+
|
|
71
|
+
"Bash(rm -rf /:*)",
|
|
72
|
+
"Bash(rm -rf ~:*)",
|
|
73
|
+
"Bash(rm -rf ~/:*)"
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
"hooks": {
|
|
78
|
+
"PostToolUse": [
|
|
79
|
+
{
|
|
80
|
+
"matcher": "Edit|Write|MultiEdit",
|
|
81
|
+
"hooks": [
|
|
82
|
+
{
|
|
83
|
+
"type": "command",
|
|
84
|
+
"command": ".claude/hooks/post-edit-reminders.sh"
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
]
|
|
89
|
+
}
|
|
90
|
+
}
|