-
Notifications
You must be signed in to change notification settings - Fork 482
Feature/tool configurations #636
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
base: main
Are you sure you want to change the base?
Feature/tool configurations #636
Conversation
12-section enterprise-grade documentation generated through forensic codebase analysis covering architecture, requirements, security, testing, deployment, and operations. Sections included: - Introduction & Executive Summary - Product Requirements (50+ functional/non-functional) - Technology Stack (all dependencies with versions) - Process Flowcharts (ASCII diagrams) - Architecture Design (modules, patterns, ADRs) - Data Models (TypeScript interfaces, storage schemas) - Security & Compliance (STRIDE threat model) - Testing Strategy (Vitest, Playwright) - Monitoring & Observability (logging, metrics) - Deployment & Operations (Docker, Electron) - Documentation standards - Reference Collections & Glossary Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Summary of ChangesHello @purpleskulll, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly expands the project's foundational documentation and development configurations. It establishes a comprehensive 'Genesis Specification' that details various aspects of the Automaker project, from architecture to testing and deployment. Complementary to this, new configuration files are introduced to streamline development workflows, enforce code quality, and guide AI-assisted code reviews, ensuring consistency and clarity across the codebase. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
📝 WalkthroughWalkthroughThis pull request introduces comprehensive documentation and configuration files for the Automaker project. It adds Git worktree skill documentation, a test configuration file (Qodo), a new sprites configuration constant, an extensive 12-section Genesis Specification with architectural and operational guidance, and a Greptile configuration file for review automation. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested labels
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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.
Code Review
This pull request introduces a comprehensive set of documentation for the Automaker project, covering skills, workflows, configuration, and detailed Genesis Specification sections. The new documentation is well-structured and provides valuable insights into the project's architecture, requirements, and operational aspects. Additionally, new configuration files for Qodo and Greptile are added, which appear to be correctly formatted. The sprites.ts file correctly loads environment variables with sensible defaults.
| git branch -d feature/<name> | ||
| ``` | ||
|
|
||
| // turbo |
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.
The // turbo comment on this line is not standard Markdown syntax. If this is intended as a comment for a specific tool, it should be documented or formatted in a way that doesn't interfere with standard Markdown rendering. Consider using HTML comments (<!-- comment -->) if it needs to be hidden from rendered output, or remove it if it's not serving a clear purpose.
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.
Actionable comments posted: 15
🤖 Fix all issues with AI agents
In @.agent/skills/git-worktrees/SKILL.md:
- Around line 7-11: Update the skill instructions to explicitly require using
the `@automaker/git-utils` library for creating and removing worktrees instead of
invoking git directly: modify the lines that reference `git worktree list`,
creating worktrees (prefix `../automaker-worktree-`), and the `git-worktree`
workflow so they instruct callers to call the corresponding `@automaker/git-utils`
functions (create/remove/list worktrees) while still advising to run a
repository-root check and to prefer the `../automaker-worktree-` naming; make
sure the SKILL.md text references `@automaker/git-utils` by name and ties this
requirement to the CLAUDE.md safety guidance.
In @.agent/workflows/git-worktree.md:
- Around line 28-30: Remove the stray comment "// turbo" from the workflow steps
so the list flows correctly; locate the line containing the exact text "//
turbo" and delete it, leaving the numbered step "5. **Verify current setup**:
git status" as the first item in that section.
- Around line 14-26: Update the git-worktree examples to align with the
CLAUDE.md/@automaker/git-utils flow by changing the worktree name prefix from
../automaker-feature-<name> to ../automaker-worktree-<name> in the creation, cd,
and removal steps and add a short note that the preferred method is to use
`@automaker/git-utils` (with the shown git commands as a manual fallback); update
the three occurrences in .agent/workflows/git-worktree.md so the commands and
navigation use ../automaker-worktree-<name> and mention `@automaker/git-utils` as
the preferred flow.
In @.qodo.toml:
- Around line 4-12: The .qodo.toml uses non-standard sections/keys: replace the
[tests] section with the official [pr_test] section, rename the key framework to
testing_framework, and remove unsupported keys (directory, test_pattern, and any
keys like enabled, check_types, scripts); also delete the entire [quality]
section so only schema-recognized keys (e.g., testing_framework and any other
official pr_test options) remain in the file.
In `@apps/server/src/config/sprites.ts`:
- Around line 1-12: The OTEL_RECEIVER_PORT value in spritesConfig may become NaN
when parsing unexpected env values; update the OTEL_RECEIVER_PORT assignment in
spritesConfig to call parseInt with an explicit radix (e.g., 10) and add a
fallback to the default port (4317) if the parsed value is not a finite number
(use Number.isFinite or Number.isNaN to detect failure), so OTEL_RECEIVER_PORT
always resolves to a valid integer.
In `@genesis_spec/README.md`:
- Around line 1-4: Replace the emphasized title line "**Comprehensive technical
documentation for the Automaker autonomous AI development studio**" with a
proper Markdown heading (use a top-level heading for the title or a subheading
for the description) so the README uses a heading instead of bold text; update
the line containing the emphasized description and ensure the title "Automaker
Genesis Specification" remains as the main heading.
In `@genesis_spec/section_guides/Automaker_Section_03_Technology_Stack.md`:
- Around line 97-102: The fenced code block showing the package layout lacks a
language identifier; update the opening backticks for that block from ``` to
```text so the block is explicitly marked as plain text (e.g., the block
containing "Root package.json (npm workspaces) ├── apps/server/ ..." should use
```text as the fence) to satisfy MD040 and improve rendering.
In `@genesis_spec/section_guides/Automaker_Section_04_Process_Flowcharts.md`:
- Around line 11-50: The ASCII diagram code fences in
genesis_spec/section_guides/Automaker_Section_04_Process_Flowcharts.md are
missing language identifiers; update each triple-backtick fence that contains
the ASCII art (e.g., the diagram beginning with "+------------------+
+------------------+ +------------------+" and the other similar diagram
blocks) to use ```text (or ```plaintext) instead of a bare ``` so the fences
become language-tagged and resolve MD040/editor rendering issues; apply this
change to every diagram block mentioned in the review.
In `@genesis_spec/section_guides/Automaker_Section_05_Architecture_Design.md`:
- Around line 186-211: The table rows like the lone "| **Sessions** |" break
Markdown because every row must have three cells to match the header; update
each section header row (e.g., Sessions, Agent, Auto-Mode, Terminal, Settings)
to include three pipe-separated cells (for example: put the section name in the
first cell and add two empty or placeholder cells such as "-" or "") so each row
has three columns and the endpoints rows (e.g., POST /api/sessions, GET
/api/agent/history, POST /api/auto-mode/run-feature, POST
/api/terminal/sessions, GET /api/settings/global) continue to align under the
Method, Endpoint, and Purpose columns.
In `@genesis_spec/section_guides/Automaker_Section_06_Data_Models.md`:
- Around line 203-231: The code fence in the storage layout block of
Automaker_Section_06_Data_Models.md lacks a language identifier; update the
opening fence from ``` to ```text so the block begins with a text language tag
(i.e., change the fenced block around the directory listing to use "text") to
ensure proper rendering and syntax highlighting.
- Around line 86-90: The spec mixes two type names for MCP server configuration:
use a single consistent casing (either MCPServerConfig or McpServerConfig)
across the document; update the declaration for GlobalSettings.mcpServers and
any other references (for example ExecuteOptions and any sections that define
the server schema) to the chosen identifier so all occurrences
(GlobalSettings.mcpServers, the type definition, and ExecuteOptions) match
exactly.
- Around line 152-193: The fenced ASCII diagram block that begins with the
Session/Feature diagram lacks a language identifier; update the opening
triple-backtick that wraps the ASCII art to include a language tag such as
"text" (i.e., change ``` to ```text) so renderers treat it as a preformatted
text block containing the Session, Feature, Message, Worktree, GlobalSettings,
ProjectSettings, and Credentials diagram.
In `@genesis_spec/section_guides/Automaker_Section_07_Security_Compliance.md`:
- Around line 13-33: The fenced ASCII security diagram block currently starts
with ```; update that opening fence to include the language identifier by
changing it to ```text so the diagram is marked as plain text; locate the
triple-backtick fence surrounding the "Security Layers" ASCII art (the block
containing the ASCII boxes and headers like "Authentication", "Authorization",
"Data Protection") and replace the opening ``` with ```text, leaving the closing
``` unchanged.
In
`@genesis_spec/section_guides/Automaker_Section_09_Monitoring_Observability.md`:
- Around line 287-298: The fenced console dashboard block showing the ASCII box
(the lines with "Automaker Backend Server", "Listening", "HTTP API", etc.) is
missing a language identifier; update the opening fence from ``` to ```text so
the block is marked as plain text (look for the fenced block containing the
ASCII dashboard header "Automaker Backend Server" and change its opening fence
to include "text").
- Around line 13-30: The fenced observability diagram block is missing a
language identifier; update the opening fence for the ASCII diagram (the
triple-backtick that currently starts the diagram) to include the "text"
language identifier (i.e., change ``` to ```text) so the block is properly
highlighted/rendered while leaving the closing triple-backtick unchanged; locate
the ASCII observability diagram block in the file and modify its opening fence
accordingly.
🧹 Nitpick comments (1)
genesis_spec/section_guides/Automaker_Section_12_Reference_Collections.md (1)
13-180: Consider wrapping bare URLs in markdown link syntax.The documentation contains many bare URLs in tables. While functional, wrapping them in proper markdown link syntax (angle brackets or
[text](url)format) improves readability and ensures better compatibility with markdown processors.Example improvement for a few entries
| Resource | URL | |----------|-----| -| GitHub Repository | https://github.com/AutoMaker-Org/automaker | -| Issue Tracker | https://github.com/AutoMaker-Org/automaker/issues | +| GitHub Repository | <https://github.com/AutoMaker-Org/automaker> | +| Issue Tracker | <https://github.com/AutoMaker-Org/automaker/issues> |Or alternatively:
-| GitHub Repository | https://github.com/AutoMaker-Org/automaker | +| GitHub Repository | [AutoMaker-Org/automaker](https://github.com/AutoMaker-Org/automaker) |
| ## Instructions | ||
| - Always use `git worktree list` before creating new ones to avoid path conflicts. | ||
| - Prefer naming worktrees with the prefix `../automaker-worktree-`. | ||
| - Ensure you are in the root of the repository before running worktree commands. | ||
| - Use the `git-worktree` workflow for step-by-step execution. |
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.
Call out required @automaker/git-utils usage in the skill instructions.
The skill currently only mentions raw git worktree usage. Please explicitly require creating/removing worktrees via @automaker/git-utils to match repository safety guidance.
✏️ Proposed update
## Instructions
- Always use `git worktree list` before creating new ones to avoid path conflicts.
- Prefer naming worktrees with the prefix `../automaker-worktree-`.
- Ensure you are in the root of the repository before running worktree commands.
- Use the `git-worktree` workflow for step-by-step execution.
+- Create and manage worktrees via `@automaker/git-utils` (avoid direct `git worktree add/remove`).Based on learnings, please align this with the CLAUDE.md requirement.
🤖 Prompt for AI Agents
In @.agent/skills/git-worktrees/SKILL.md around lines 7 - 11, Update the skill
instructions to explicitly require using the `@automaker/git-utils` library for
creating and removing worktrees instead of invoking git directly: modify the
lines that reference `git worktree list`, creating worktrees (prefix
`../automaker-worktree-`), and the `git-worktree` workflow so they instruct
callers to call the corresponding `@automaker/git-utils` functions
(create/remove/list worktrees) while still advising to run a repository-root
check and to prefer the `../automaker-worktree-` naming; make sure the SKILL.md
text references `@automaker/git-utils` by name and ties this requirement to the
CLAUDE.md safety guidance.
| 2. **Create a new worktree for a feature**: | ||
| ```bash | ||
| git worktree add ../automaker-feature-<name> -b feature/<name> | ||
| ``` | ||
|
|
||
| 3. **Navigate to the worktree**: | ||
| - `cd ../automaker-feature-<name>` | ||
|
|
||
| 4. **Remove worktree after completion**: | ||
| ```bash | ||
| git worktree remove ../automaker-feature-<name> | ||
| git branch -d feature/<name> | ||
| ``` |
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.
Align worktree naming and creation guidance with the required @automaker/git-utils flow.
The workflow uses ../automaker-feature-<name> and only shows raw git commands. This conflicts with the skill doc’s ../automaker-worktree- prefix and the requirement to use @automaker/git-utils. Please align both.
✏️ Suggested adjustment
-2. **Create a new worktree for a feature**:
+2. **Create a new worktree for a feature (prefer `@automaker/git-utils`)**:
```bash
- git worktree add ../automaker-feature-<name> -b feature/<name>
+ # Prefer `@automaker/git-utils`; manual fallback shown:
+ git worktree add ../automaker-worktree-<name> -b feature/<name>- Navigate to the worktree:
-
cd ../automaker-feature-<name>
-
cd ../automaker-worktree-<name>
- Remove worktree after completion:
- git worktree remove ../automaker-feature-<name>
+ git worktree remove ../automaker-worktree-<name>
git branch -d feature/<name></details>
Based on learnings, please align this with the CLAUDE.md requirement.
<details>
<summary>🤖 Prompt for AI Agents</summary>
In @.agent/workflows/git-worktree.md around lines 14 - 26, Update the
git-worktree examples to align with the CLAUDE.md/@automaker/git-utils flow by
changing the worktree name prefix from ../automaker-feature- to
../automaker-worktree- in the creation, cd, and removal steps and add a
short note that the preferred method is to use @automaker/git-utils (with the
shown git commands as a manual fallback); update the three occurrences in
.agent/workflows/git-worktree.md so the commands and navigation use
../automaker-worktree- and mention @automaker/git-utils as the preferred
flow.
</details>
<!-- fingerprinting:phantom:poseidon:eagle -->
<!-- This is an auto-generated comment by CodeRabbit -->
| // turbo | ||
| 5. **Verify current setup**: | ||
| git status |
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.
Remove stray // turbo comment from the workflow.
It reads like a leftover note and breaks the flow of the steps.
✏️ Proposed cleanup
-// turbo📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| // turbo | |
| 5. **Verify current setup**: | |
| git status | |
| 5. **Verify current setup**: | |
| git status |
🤖 Prompt for AI Agents
In @.agent/workflows/git-worktree.md around lines 28 - 30, Remove the stray
comment "// turbo" from the workflow steps so the list flows correctly; locate
the line containing the exact text "// turbo" and delete it, leaving the
numbered step "5. **Verify current setup**: git status" as the first item in
that section.
| [tests] | ||
| framework = "vitest" | ||
| directory = "libs" | ||
| test_pattern = "**/*.test.ts" | ||
|
|
||
| [quality] | ||
| enabled = true | ||
| check_types = true | ||
| scripts = ["npm run lint"] |
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.
🧩 Analysis chain
🌐 Web query:
Qodo .qodo.toml configuration schema official documentation
💡 Result:
The official Qodo documentation for the .qodo/.pr_agent TOML configuration (schema, examples, locations, and option descriptions) is on Qodo’s docs site and the PR-Agent repo/config files:
- Qodo docs — Configuration file overview & locations (how to name/place .pr_agent.toml, examples). [1]
- Qodo docs — “What can you configure?” (sections and settings overview). [2]
- PR-Agent open-source repo / master configuration (default schema and full option list) — configuration.toml in the project. [3]
If you want I can open the specific configuration sections or fetch the repository’s configuration.toml and extract the full schema/fields for you.
Sources:
[1] https://docs.qodo.ai/qodo-documentation/qodo-merge/configuration/configuration-file
[2] https://docs.qodo.ai/qodo-documentation/qodo-merge/configuration/what-can-you-configure
[3] pr-agent settings/configuration.toml (referenced in docs; available in the qodo-ai/pr-agent GitHub repo).
🏁 Script executed:
#!/bin/bash
# Fetch the configuration.toml from PR-Agent repository to get the official schema
curl -s https://raw.githubusercontent.com/qodo-ai/pr-agent/master/pr_agent/settings/configuration.toml | head -200Repository: AutoMaker-Org/automaker
Length of output: 9152
🏁 Script executed:
#!/bin/bash
# Fetch the entire configuration.toml and search for [tests] and [quality] sections
curl -s https://raw.githubusercontent.com/qodo-ai/pr-agent/master/pr_agent/settings/configuration.toml | grep -E "^\[|framework|directory|test_pattern|enabled|check_types|scripts"Repository: AutoMaker-Org/automaker
Length of output: 1011
🏁 Script executed:
#!/bin/bash
# Fetch and extract the [pr_test] section from official configuration
curl -s https://raw.githubusercontent.com/qodo-ai/pr-agent/master/pr_agent/settings/configuration.toml | sed -n '/^\[pr_test\]/,/^\[/p' | head -20Repository: AutoMaker-Org/automaker
Length of output: 667
Correct .qodo.toml sections and keys to match official Qodo schema.
The configuration uses non-standard section names and keys that won't be recognized by Qodo. The official schema defines [pr_test] (not [tests]) with only testing_framework, num_tests, avoid_mocks, file, class_name, and enable_help_text as valid options. There is no official [quality] section. Keys like framework, directory, test_pattern, enabled, check_types, and scripts are not part of the Qodo schema and will be ignored. Replace [tests] with [pr_test], use testing_framework instead of framework, and remove unsupported keys and the entire [quality] section to ensure configuration is recognized.
🤖 Prompt for AI Agents
In @.qodo.toml around lines 4 - 12, The .qodo.toml uses non-standard
sections/keys: replace the [tests] section with the official [pr_test] section,
rename the key framework to testing_framework, and remove unsupported keys
(directory, test_pattern, and any keys like enabled, check_types, scripts); also
delete the entire [quality] section so only schema-recognized keys (e.g.,
testing_framework and any other official pr_test options) remain in the file.
| export const spritesConfig = { | ||
| SPRITES_TOKEN: process.env.SPRITES_TOKEN, | ||
| SPRITES_API_BASE: process.env.SPRITES_API_BASE || "https://api.sprites.dev/v1", | ||
| GITHUB_TOKEN: process.env.GITHUB_TOKEN, | ||
| LINEAR_API_KEY: process.env.LINEAR_API_KEY, | ||
| CLAUDE_OAUTH_TOKEN: process.env.CLAUDE_OAUTH_TOKEN, | ||
| DEFAULT_REPO_URL: process.env.DEFAULT_REPO_URL, | ||
| DEFAULT_BRANCH: process.env.DEFAULT_BRANCH || "main", | ||
| GIT_USER_NAME: process.env.GIT_USER_NAME || "Automaker Agent", | ||
| GIT_USER_EMAIL: process.env.GIT_USER_EMAIL || "agent@automaker.dev", | ||
| OTEL_RECEIVER_PORT: parseInt(process.env.OTEL_RECEIVER_PORT || "4317"), | ||
| OTEL_RECEIVER_HOST: process.env.OTEL_RECEIVER_HOST || "0.0.0.0", |
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.
Guard OTEL port parsing to avoid NaN configs.
parseInt can yield NaN for unexpected env values; add radix + finite fallback to prevent runtime misconfig.
🛠️ Proposed fix
+const otelReceiverPort = Number.parseInt(process.env.OTEL_RECEIVER_PORT ?? "4317", 10);
+
export const spritesConfig = {
SPRITES_TOKEN: process.env.SPRITES_TOKEN,
SPRITES_API_BASE: process.env.SPRITES_API_BASE || "https://api.sprites.dev/v1",
GITHUB_TOKEN: process.env.GITHUB_TOKEN,
LINEAR_API_KEY: process.env.LINEAR_API_KEY,
CLAUDE_OAUTH_TOKEN: process.env.CLAUDE_OAUTH_TOKEN,
DEFAULT_REPO_URL: process.env.DEFAULT_REPO_URL,
DEFAULT_BRANCH: process.env.DEFAULT_BRANCH || "main",
GIT_USER_NAME: process.env.GIT_USER_NAME || "Automaker Agent",
GIT_USER_EMAIL: process.env.GIT_USER_EMAIL || "agent@automaker.dev",
- OTEL_RECEIVER_PORT: parseInt(process.env.OTEL_RECEIVER_PORT || "4317"),
+ OTEL_RECEIVER_PORT: Number.isFinite(otelReceiverPort) ? otelReceiverPort : 4317,
OTEL_RECEIVER_HOST: process.env.OTEL_RECEIVER_HOST || "0.0.0.0",
};📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| export const spritesConfig = { | |
| SPRITES_TOKEN: process.env.SPRITES_TOKEN, | |
| SPRITES_API_BASE: process.env.SPRITES_API_BASE || "https://api.sprites.dev/v1", | |
| GITHUB_TOKEN: process.env.GITHUB_TOKEN, | |
| LINEAR_API_KEY: process.env.LINEAR_API_KEY, | |
| CLAUDE_OAUTH_TOKEN: process.env.CLAUDE_OAUTH_TOKEN, | |
| DEFAULT_REPO_URL: process.env.DEFAULT_REPO_URL, | |
| DEFAULT_BRANCH: process.env.DEFAULT_BRANCH || "main", | |
| GIT_USER_NAME: process.env.GIT_USER_NAME || "Automaker Agent", | |
| GIT_USER_EMAIL: process.env.GIT_USER_EMAIL || "agent@automaker.dev", | |
| OTEL_RECEIVER_PORT: parseInt(process.env.OTEL_RECEIVER_PORT || "4317"), | |
| OTEL_RECEIVER_HOST: process.env.OTEL_RECEIVER_HOST || "0.0.0.0", | |
| const otelReceiverPort = Number.parseInt(process.env.OTEL_RECEIVER_PORT ?? "4317", 10); | |
| export const spritesConfig = { | |
| SPRITES_TOKEN: process.env.SPRITES_TOKEN, | |
| SPRITES_API_BASE: process.env.SPRITES_API_BASE || "https://api.sprites.dev/v1", | |
| GITHUB_TOKEN: process.env.GITHUB_TOKEN, | |
| LINEAR_API_KEY: process.env.LINEAR_API_KEY, | |
| CLAUDE_OAUTH_TOKEN: process.env.CLAUDE_OAUTH_TOKEN, | |
| DEFAULT_REPO_URL: process.env.DEFAULT_REPO_URL, | |
| DEFAULT_BRANCH: process.env.DEFAULT_BRANCH || "main", | |
| GIT_USER_NAME: process.env.GIT_USER_NAME || "Automaker Agent", | |
| GIT_USER_EMAIL: process.env.GIT_USER_EMAIL || "agent@automaker.dev", | |
| OTEL_RECEIVER_PORT: Number.isFinite(otelReceiverPort) ? otelReceiverPort : 4317, | |
| OTEL_RECEIVER_HOST: process.env.OTEL_RECEIVER_HOST || "0.0.0.0", |
🤖 Prompt for AI Agents
In `@apps/server/src/config/sprites.ts` around lines 1 - 12, The
OTEL_RECEIVER_PORT value in spritesConfig may become NaN when parsing unexpected
env values; update the OTEL_RECEIVER_PORT assignment in spritesConfig to call
parseInt with an explicit radix (e.g., 10) and add a fallback to the default
port (4317) if the parsed value is not a finite number (use Number.isFinite or
Number.isNaN to detect failure), so OTEL_RECEIVER_PORT always resolves to a
valid integer.
| ``` | ||
| +----------------+ +----------------+ | ||
| | Session | | Feature | | ||
| +----------------+ +----------------+ | ||
| | id | | id | | ||
| | name | | name | | ||
| | projectPath | | description | | ||
| | messages[] +------>+ status | | ||
| | model | | priority | | ||
| +-------+--------+ | dependencies[] | | ||
| | +--------+-------+ | ||
| | | | ||
| v v | ||
| +----------------+ +----------------+ | ||
| | Message | | Worktree | | ||
| +----------------+ +----------------+ | ||
| | id | | path | | ||
| | role | | branch | | ||
| | content | | featureId | | ||
| | images[] | +----------------+ | ||
| | timestamp | | ||
| +----------------+ | ||
| +----------------+ +----------------+ | ||
| | GlobalSettings | |ProjectSettings | | ||
| +----------------+ +----------------+ | ||
| | theme | | name | | ||
| | defaultModel | | model | | ||
| | eventHooks[] | | planningMode | | ||
| | mcpServers{} | | gitWorkflow{} | | ||
| +-------+--------+ +--------+-------+ | ||
| | | | ||
| +------------+------------+ | ||
| | | ||
| v | ||
| +--------------+ | ||
| | Credentials | | ||
| +--------------+ | ||
| | anthropicKey | | ||
| | githubToken | | ||
| +--------------+ | ||
| ``` |
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.
Add a language identifier to the ASCII diagram fence.
✏️ Suggested fix
-```
+```text📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ``` | |
| +----------------+ +----------------+ | |
| | Session | | Feature | | |
| +----------------+ +----------------+ | |
| | id | | id | | |
| | name | | name | | |
| | projectPath | | description | | |
| | messages[] +------>+ status | | |
| | model | | priority | | |
| +-------+--------+ | dependencies[] | | |
| | +--------+-------+ | |
| | | | |
| v v | |
| +----------------+ +----------------+ | |
| | Message | | Worktree | | |
| +----------------+ +----------------+ | |
| | id | | path | | |
| | role | | branch | | |
| | content | | featureId | | |
| | images[] | +----------------+ | |
| | timestamp | | |
| +----------------+ | |
| +----------------+ +----------------+ | |
| | GlobalSettings | |ProjectSettings | | |
| +----------------+ +----------------+ | |
| | theme | | name | | |
| | defaultModel | | model | | |
| | eventHooks[] | | planningMode | | |
| | mcpServers{} | | gitWorkflow{} | | |
| +-------+--------+ +--------+-------+ | |
| | | | |
| +------------+------------+ | |
| | | |
| v | |
| +--------------+ | |
| | Credentials | | |
| +--------------+ | |
| | anthropicKey | | |
| | githubToken | | |
| +--------------+ | |
| ``` |
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
152-152: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
In `@genesis_spec/section_guides/Automaker_Section_06_Data_Models.md` around lines
152 - 193, The fenced ASCII diagram block that begins with the Session/Feature
diagram lacks a language identifier; update the opening triple-backtick that
wraps the ASCII art to include a language tag such as "text" (i.e., change ```
to ```text) so renderers treat it as a preformatted text block containing the
Session, Feature, Message, Worktree, GlobalSettings, ProjectSettings, and
Credentials diagram.
| ``` | ||
| ~/.automaker/ # Global config directory | ||
| +-- settings.json # GlobalSettings | ||
| +-- credentials.json # Credentials (encrypted) | ||
| +-- usage/ # Usage tracking | ||
| | | ||
| +-- data/ # Server data directory | ||
| +-- sessions-metadata.json # Session index | ||
| +-- agent-sessions/ # Session data | ||
| | +-- {sessionId}.json # Messages array | ||
| | +-- {sessionId}-queue.json # Prompt queue | ||
| | | ||
| +-- notifications/ # Notification storage | ||
| +-- notifications.json | ||
| {project}/.automaker/ # Per-project config | ||
| +-- settings.json # ProjectSettings | ||
| +-- features/ # Feature data | ||
| | +-- {featureId}/ | ||
| | +-- spec.md # Feature specification | ||
| | +-- plan.json # Implementation plan | ||
| | +-- progress.json # Status tracking | ||
| | | ||
| +-- agent-sessions/ # Project-scoped sessions | ||
| +-- {sessionId}/ | ||
| +-- messages.json | ||
| +-- events.json | ||
| +-- state.json | ||
| ``` |
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.
Add a language identifier to the storage layout fence.
✏️ Suggested fix
-```
+```text🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
203-203: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
In `@genesis_spec/section_guides/Automaker_Section_06_Data_Models.md` around lines
203 - 231, The code fence in the storage layout block of
Automaker_Section_06_Data_Models.md lacks a language identifier; update the
opening fence from ``` to ```text so the block begins with a text language tag
(i.e., change the fenced block around the directory listing to use "text") to
ensure proper rendering and syntax highlighting.
| ``` | ||
| +-------------------------------------------------------------------+ | ||
| | Security Layers | | ||
| +-------------------------------------------------------------------+ | ||
| | | | ||
| | +--------------------+ +--------------------+ +---------------+| | ||
| | | Authentication | | Authorization | | Data Protection| | ||
| | | - API Key auth | | - Path validation | | - Encrypted || | ||
| | | - Session tokens | | - Tool restrictions| | credentials || | ||
| | | - WS tokens | | - CORS policy | | - Secure FS || | ||
| | +--------------------+ +--------------------+ +---------------+| | ||
| | | | ||
| | +--------------------+ +--------------------+ +---------------+| | ||
| | | Input Validation | | Network Security | | Audit Logging || | ||
| | | - JSON schema | | - TLS termination | | - Request logs|| | ||
| | | - Path traversal | | - Rate limiting | | - Event history| | ||
| | | - Size limits | | - Origin checks | | - Error logs || | ||
| | +--------------------+ +--------------------+ +---------------+| | ||
| | | | ||
| +-------------------------------------------------------------------+ | ||
| ``` |
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.
Add a language identifier to the security diagram fence.
✏️ Suggested fix
-```
+```text🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
13-13: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
In `@genesis_spec/section_guides/Automaker_Section_07_Security_Compliance.md`
around lines 13 - 33, The fenced ASCII security diagram block currently starts
with ```; update that opening fence to include the language identifier by
changing it to ```text so the diagram is marked as plain text; locate the
triple-backtick fence surrounding the "Security Layers" ASCII art (the block
containing the ASCII boxes and headers like "Authentication", "Authorization",
"Data Protection") and replace the opening ``` with ```text, leaving the closing
``` unchanged.
| ``` | ||
| +-------------------------------------------------------------------------+ | ||
| | Observability Stack | | ||
| +-------------------------------------------------------------------------+ | ||
| | | | ||
| | +---------------------+ +---------------------+ +------------------+ | | ||
| | | LOGS | | METRICS | | TRACES | | | ||
| | | | | | | | | | ||
| | | - Request logs | | - HTTP status codes | | - WebSocket | | | ||
| | | - Error logs | | - Session counts | | connections | | | ||
| | | - Event history | | - Agent usage | | - API latency | | | ||
| | | - Agent activity | | - Terminal sessions | | - Event flow | | | ||
| | | | | | | | | | ||
| | | Morgan + Custom | | Event-based | | Event History | | | ||
| | +---------------------+ +---------------------+ +------------------+ | | ||
| | | | ||
| +-------------------------------------------------------------------------+ | ||
| ``` |
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.
Add a language identifier to the observability diagram fence.
✏️ Suggested fix
-```
+```text📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ``` | |
| +-------------------------------------------------------------------------+ | |
| | Observability Stack | | |
| +-------------------------------------------------------------------------+ | |
| | | | |
| | +---------------------+ +---------------------+ +------------------+ | | |
| | | LOGS | | METRICS | | TRACES | | | |
| | | | | | | | | | |
| | | - Request logs | | - HTTP status codes | | - WebSocket | | | |
| | | - Error logs | | - Session counts | | connections | | | |
| | | - Event history | | - Agent usage | | - API latency | | | |
| | | - Agent activity | | - Terminal sessions | | - Event flow | | | |
| | | | | | | | | | |
| | | Morgan + Custom | | Event-based | | Event History | | | |
| | +---------------------+ +---------------------+ +------------------+ | | |
| | | | |
| +-------------------------------------------------------------------------+ | |
| ``` |
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
13-13: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
In `@genesis_spec/section_guides/Automaker_Section_09_Monitoring_Observability.md`
around lines 13 - 30, The fenced observability diagram block is missing a
language identifier; update the opening fence for the ASCII diagram (the
triple-backtick that currently starts the diagram) to include the "text"
language identifier (i.e., change ``` to ```text) so the block is properly
highlighted/rendered while leaving the closing triple-backtick unchanged; locate
the ASCII observability diagram block in the file and modify its opening fence
accordingly.
| ``` | ||
| +===========================================================+ | ||
| | Automaker Backend Server | | ||
| +===========================================================+ | ||
| | Listening: 0.0.0.0:3008 | | ||
| | HTTP API: http://localhost:3008 | | ||
| | WebSocket: ws://localhost:3008/api/events | | ||
| | Terminal: ws://localhost:3008/api/terminal/ws | | ||
| | Health: http://localhost:3008/api/health | | ||
| | Terminal: enabled (password protected) | | ||
| +===========================================================+ | ||
| ``` |
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.
Add a language identifier to the console dashboard fence.
✏️ Suggested fix
-```
+```text📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ``` | |
| +===========================================================+ | |
| | Automaker Backend Server | | |
| +===========================================================+ | |
| | Listening: 0.0.0.0:3008 | | |
| | HTTP API: http://localhost:3008 | | |
| | WebSocket: ws://localhost:3008/api/events | | |
| | Terminal: ws://localhost:3008/api/terminal/ws | | |
| | Health: http://localhost:3008/api/health | | |
| | Terminal: enabled (password protected) | | |
| +===========================================================+ | |
| ``` |
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
287-287: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
In `@genesis_spec/section_guides/Automaker_Section_09_Monitoring_Observability.md`
around lines 287 - 298, The fenced console dashboard block showing the ASCII box
(the lines with "Automaker Backend Server", "Listening", "HTTP API", etc.) is
missing a language identifier; update the opening fence from ``` to ```text so
the block is marked as plain text (look for the fenced block containing the
ASCII dashboard header "Automaker Backend Server" and change its opening fence
to include "text").
Summary by CodeRabbit
Documentation
Chores
✏️ Tip: You can customize this high-level summary in your review settings.