Skip to content

Conversation

@purpleskulll
Copy link

@purpleskulll purpleskulll commented Jan 21, 2026

Summary by CodeRabbit

  • Documentation

    • Added comprehensive Genesis Specification with 12 detailed sections covering architecture, product requirements, technology stack, security, testing strategy, monitoring, deployment, and reference materials.
    • Added Git Worktree skill and workflow documentation for managing isolated development environments.
  • Chores

    • Added configuration files for test frameworks, quality checks, and code review automation.
    • Added server configuration for API integrations and observability settings.

✏️ Tip: You can customize this high-level summary in your review settings.

Anansitrading and others added 3 commits January 20, 2026 23:32
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>
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @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

  • Comprehensive Documentation Suite: Introduction of a detailed 'Automaker Genesis Specification' across 12 sections, covering architecture, requirements, testing, security, and more, serving as a single source of truth for the project.
  • Git Worktree Guidance: New skill and workflow documentation for managing Git Worktrees, promoting isolated development environments and outlining best practices for their use within the Automaker repository.
  • Centralized Configuration: Addition of sprites.ts for centralizing environment variable definitions and .qodo.toml for project quality and testing configurations, streamlining development setup and consistency.
  • AI Review Configuration: Integration of greptile.json to guide AI-powered code reviews, focusing on architectural patterns, monorepo structure, Claude Agent SDK integration, and adherence to specific project guidelines.

🧠 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 Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@coderabbitai
Copy link

coderabbitai bot commented Jan 21, 2026

📝 Walkthrough

Walkthrough

This 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

Cohort / File(s) Summary
Agent Skills & Workflows
.agent/skills/git-worktrees/SKILL.md, .agent/workflows/git-worktree.md
Introduces skill documentation for managing isolated development environments with Git worktrees, including operational instructions (list before creating, naming conventions, execution from repo root) and a step-by-step workflow for creating, navigating, and removing worktrees.
Configuration Files
.qodo.toml, greptile.json, apps/server/src/config/sprites.ts
Adds Qodo test discovery and quality check configuration (vitest framework, test directory, lint script), Greptile review automation config, and exports a new spritesConfig constant aggregating environment variables for API tokens, URLs, Git user settings, and OpenTelemetry receiver configuration.
Genesis Specification Documentation
genesis_spec/README.md, genesis_spec/section_guides/Automaker_Section_*.md (01–12)
Comprehensive specification suite covering: Introduction & Executive Summary (Section 01), Product Requirements with 64+ functional requirements (Section 02), Technology Stack (Section 03), Process Flowcharts with ASCII diagrams (Section 04), Architecture Design with ADRs (Section 05), Data Models and schemas (Section 06), Security & Compliance with threat modeling (Section 07), Testing Strategy (Section 08), Monitoring & Observability (Section 09), Deployment & Operations (Section 10), Documentation standards (Section 11), and Reference Collections (Section 12). Index document provides quick stats and navigation.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • feat: bulk delete in backlog mass select #413: Introduces worktree-related modifications alongside feature endpoints and SDK integration changes, sharing code-level alignment with this PR's Git worktree documentation and configuration structure.

Suggested labels

type: feature, Enhancement, Ready-To-Merge

Poem

🐰 Whiskers twitching with delight,
Genesis specs shining bright—
Worktrees hop from branch to brew,
Config cards and docs anew!
Automaker's blueprint true! 🌱

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The PR title 'Feature/tool configurations' is vague and generic, failing to convey what specific features or tool configurations are being introduced. Replace with a more descriptive title that specifies the main change, such as 'Add Genesis Specification documentation and project configuration files' or 'Initialize project configuration and architecture documentation'.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

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.

Copy link

@coderabbitai coderabbitai bot left a 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) |

Comment on lines +7 to +11
## 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.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

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.

Comment on lines +14 to +26
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>
```
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

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>
  1. Navigate to the worktree:
    • cd ../automaker-feature-<name>
    • cd ../automaker-worktree-<name>
  1. 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 -->

Comment on lines +28 to +30
// turbo
5. **Verify current setup**:
git status
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

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.

Suggested change
// 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.

Comment on lines +4 to +12
[tests]
framework = "vitest"
directory = "libs"
test_pattern = "**/*.test.ts"

[quality]
enabled = true
check_types = true
scripts = ["npm run lint"]
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 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 -200

Repository: 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 -20

Repository: 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.

Comment on lines +1 to +12
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",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

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.

Suggested change
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.

Comment on lines +152 to +193
```
+----------------+ +----------------+
| 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 |
+--------------+
```
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

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.

Suggested change
```
+----------------+ +----------------+
| 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.

Comment on lines +203 to +231
```
~/.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
```
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

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.

Comment on lines +13 to +33
```
+-------------------------------------------------------------------+
| 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 ||
| +--------------------+ +--------------------+ +---------------+|
| |
+-------------------------------------------------------------------+
```
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

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.

Comment on lines +13 to +30
```
+-------------------------------------------------------------------------+
| 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 | |
| +---------------------+ +---------------------+ +------------------+ |
| |
+-------------------------------------------------------------------------+
```
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

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.

Suggested change
```
+-------------------------------------------------------------------------+
| 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.

Comment on lines +287 to +298
```
+===========================================================+
| 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) |
+===========================================================+
```
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

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.

Suggested change
```
+===========================================================+
| 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").

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants