-
Notifications
You must be signed in to change notification settings - Fork 6
feat: Add CI/CD workflows and build infrastructure improvements #74
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
maceip
wants to merge
1
commit into
main
Choose a base branch
from
feat/build-infrastructure
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| # Commit Changes | ||
|
|
||
| You are tasked with creating git commits for the changes made during this session. | ||
|
|
||
| ## Process: | ||
|
|
||
| 1. **Think about what changed:** | ||
| - Review the conversation history and understand what was accomplished | ||
| - Run `git status` to see current changes | ||
| - Run `git diff` to understand the modifications | ||
| - Consider whether changes should be one commit or multiple logical commits | ||
|
|
||
| 2. **Plan your commit(s):** | ||
| - Identify which files belong together | ||
| - Draft clear, descriptive commit messages | ||
| - Use imperative mood in commit messages | ||
| - Focus on why the changes were made, not just what | ||
|
|
||
| 3. **Present your plan to the user:** | ||
| - List the files you plan to add for each commit | ||
| - Show the commit message(s) you'll use | ||
| - Ask: "I plan to create [N] commit(s) with these changes. Shall I proceed?" | ||
|
|
||
| 4. **Execute upon confirmation:** | ||
| - Use `git add` with specific files (never use `-A` or `.`) | ||
| - Create commits with your planned messages | ||
| - Show the result with `git log --oneline -n [number]` | ||
|
|
||
| ## Important: | ||
|
|
||
| - **NEVER add co-author information or Claude attribution** | ||
| - Commits should be authored solely by the user | ||
| - Do not include any "Generated with Claude" messages | ||
| - Do not add "Co-Authored-By" lines | ||
| - Write commit messages as if the user wrote them | ||
|
|
||
| ## Remember: | ||
|
|
||
| - You have the full context of what was done in this session | ||
| - Group related changes together | ||
| - Keep commits focused and atomic when possible | ||
| - The user trusts your judgment - they asked you to commit | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,168 @@ | ||
| # Research Codebase | ||
|
|
||
| You are tasked with conducting comprehensive research across the codebase to answer user questions by spawning parallel sub-agents and synthesizing their findings. | ||
|
|
||
| ## Initial Setup: | ||
|
|
||
| When this command is invoked, respond with: | ||
|
|
||
| ``` | ||
| I'm ready to research the codebase. Please provide your research question or area of interest, and I'll analyze it thoroughly by exploring relevant components and connections. | ||
| ``` | ||
|
|
||
| Then wait for the user's research query. | ||
|
|
||
| ## Steps to follow after receiving the research query: | ||
|
|
||
| 1. **Read any directly mentioned files first:** | ||
| - If the user mentions specific files (tickets, docs, JSON), read them FULLY first | ||
| - **IMPORTANT**: Use the Read tool WITHOUT limit/offset parameters to read entire files | ||
| - **CRITICAL**: Read these files yourself in the main context before spawning any sub-tasks | ||
| - This ensures you have full context before decomposing the research | ||
|
|
||
| 2. **Analyze and decompose the research question:** | ||
| - Break down the user's query into composable research areas | ||
| - Identify specific components, patterns, or concepts to investigate | ||
| - Create a research plan using TodoWrite to track all subtasks | ||
| - Consider which directories, files, or architectural patterns are relevant | ||
|
|
||
| 3. **Spawn parallel sub-agent tasks for comprehensive research:** | ||
| - Create multiple Task agents to research different aspects concurrently | ||
| - Always include these parallel tasks: | ||
| - **Codebase exploration tasks** (one for each relevant component/directory) | ||
| - Each codebase sub-agent should focus on a specific directory, component, or question | ||
| - Write detailed prompts for each sub-agent following these guidelines: | ||
| - Instruct them to use READ-ONLY tools (Read, Grep, Glob, LS) | ||
| - Ask for specific file paths and line numbers | ||
| - Request they identify connections between components | ||
| - Have them note architectural patterns and conventions | ||
| - Ask them to find examples of usage or implementation | ||
| - Example codebase sub-agent prompt: | ||
| ``` | ||
| Research [specific component/pattern] in [directory/module]: | ||
| 1. Find all files related to [topic] | ||
| 2. Identify how [concept] is implemented (include file:line references) | ||
| 3. Look for connections to [related components] | ||
| 4. Find examples of usage in [relevant areas] | ||
| 5. Note any patterns or conventions used | ||
| Return: File paths, line numbers, and concise explanations of findings | ||
| ``` | ||
|
|
||
| 4. **Wait for all sub-agents to complete and synthesize findings:** | ||
| - IMPORTANT: Wait for ALL sub-agent tasks to complete before proceeding | ||
| - Prioritize live codebase findings as primary source of truth | ||
| - Connect findings across different components | ||
| - Include specific file paths and line numbers for reference | ||
| - Highlight patterns, connections, and architectural decisions | ||
| - Answer the user's specific questions with concrete evidence | ||
|
|
||
| 5. **Gather metadata for the research document:** | ||
| - Get current date and time with timezone: `date '+%Y-%m-%d %H:%M:%S %Z'` | ||
| - Get git commit from repository root: `cd $(git rev-parse --show-toplevel) && git log -1 --format=%H` | ||
| - Get current branch: `git branch --show-current` | ||
| - Get repository name: `basename $(git rev-parse --show-toplevel)` | ||
| - Create timestamp-based filename using date without timezone: `date '+%Y-%m-%d_%H-%M-%S'` | ||
|
|
||
| 6. **Generate research document:** | ||
| - Use the metadata gathered in step 4 | ||
| - Structure the document with YAML frontmatter followed by content: | ||
|
|
||
| ```markdown | ||
| --- | ||
| date: [Current date and time with timezone in ISO format] | ||
| git_commit: [Current commit hash] | ||
| branch: [Current branch name] | ||
| repository: [Repository name] | ||
| topic: "[User's Question/Topic]" | ||
| tags: [research, codebase, relevant-component-names] | ||
| status: complete | ||
| last_updated: [Current date in YYYY-MM-DD format] | ||
| last_updated_by: [Researcher name] | ||
| --- | ||
|
|
||
| # Research: [User's Question/Topic] | ||
|
|
||
| **Date**: [Current date and time with timezone from step 4] | ||
| **Git Commit**: [Current commit hash from step 4] | ||
| **Branch**: [Current branch name from step 4] | ||
| **Repository**: [Repository name] | ||
|
|
||
| ## Research Question | ||
|
|
||
| [Original user query] | ||
|
|
||
| ## Summary | ||
|
|
||
| [High-level findings answering the user's question] | ||
|
|
||
| ## Detailed Findings | ||
|
|
||
| ### [Component/Area 1] | ||
|
|
||
| - Finding with reference ([file.ext:line](link)) | ||
| - Connection to other components | ||
| - Implementation details | ||
|
|
||
| ### [Component/Area 2] | ||
|
|
||
| ... | ||
|
|
||
| ## Code References | ||
|
|
||
| - `path/to/file.py:123` - Description of what's there | ||
| - `another/file.ts:45-67` - Description of the code block | ||
|
|
||
| ## Architecture Insights | ||
|
|
||
| [Patterns, conventions, and design decisions discovered] | ||
|
|
||
| ## Open Questions | ||
|
|
||
| [Any areas that need further investigation] | ||
| ``` | ||
|
|
||
| 7. **Add GitHub permalinks (if applicable):** | ||
| - Check if on main branch or if commit is pushed: `git branch --show-current` and `git status` | ||
| - If on main/master or pushed, generate GitHub permalinks: | ||
| - Get repo info: `gh repo view --json owner,name` | ||
| - Create permalinks: `https://github.com/{owner}/{repo}/blob/{commit}/{file}#L{line}` | ||
| - Replace local file references with permalinks in the document | ||
|
|
||
| 8. **Sync and present findings:** | ||
| - Present a concise summary of findings to the user | ||
| - Include key file references for easy navigation | ||
| - Ask if they have follow-up questions or need clarification | ||
|
|
||
| 9. **Handle follow-up questions:** | ||
| - If the user has follow-up questions, append to the same research document | ||
| - Update the frontmatter fields `last_updated` and `last_updated_by` to reflect the update | ||
| - Add `last_updated_note: "Added follow-up research for [brief description]"` to frontmatter | ||
| - Add a new section: `## Follow-up Research [timestamp]` | ||
| - Spawn new sub-agents as needed for additional investigation | ||
| - Continue updating the document and syncing | ||
|
|
||
| ## Important notes: | ||
|
|
||
| - Always use parallel Task agents to maximize efficiency and minimize context usage | ||
| - Always run fresh codebase research - never rely solely on existing research documents | ||
| - Focus on finding concrete file paths and line numbers for developer reference | ||
| - Research documents should be self-contained with all necessary context | ||
| - Each sub-agent prompt should be specific and focused on read-only operations | ||
| - Consider cross-component connections and architectural patterns | ||
| - Include temporal context (when the research was conducted) | ||
| - Link to GitHub when possible for permanent references | ||
| - Keep the main agent focused on synthesis, not deep file reading | ||
| - Encourage sub-agents to find examples and usage patterns, not just definitions | ||
| - **File reading**: Always read mentioned files FULLY (no limit/offset) before spawning sub-tasks | ||
| - **Critical ordering**: Follow the numbered steps exactly | ||
| - ALWAYS read mentioned files first before spawning sub-tasks (step 1) | ||
| - ALWAYS wait for all sub-agents to complete before synthesizing (step 4) | ||
| - ALWAYS gather metadata before writing the document (step 5 before step 6) | ||
| - NEVER write the research document with placeholder values | ||
| - This ensures paths are correct for editing and navigation | ||
| - **Frontmatter consistency**: | ||
| - Always include frontmatter at the beginning of research documents | ||
| - Keep frontmatter fields consistent across all research documents | ||
| - Update frontmatter when adding follow-up research | ||
| - Use snake_case for multi-word field names (e.g., `last_updated`, `git_commit`) | ||
| - Tags should be relevant to the research topic and components studied |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
.claude code should be in .gitignore. Everyone has their own coding preferences, and committing these files to the repo will conflict with local setups. CI is there to make sure lint, typecheck, and build all succeed, and we use semver for commits and PRs. You can keep using your own Claude configs locally, just don’t check them in.