Repository navigation
feat: tags field, critical-check prioritization, gc-watchdog skill - #20
ThePlenkov wants to merge 32 commits into
Conversation
🤖 CodeAnt AI — Review Status
|
|
Warning Review limit reached
Next review available in: 47 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (259)
Comment |
Not up to standards ⛔🔴 Issues
|
| Category | Results |
|---|---|
| Compatibility | 19 medium 15 high |
| UnusedCode | 1 medium |
| BestPractice | 1 medium |
| ErrorProne | 24 high |
| Complexity | 14 medium 22 minor |
| Performance | 4 medium |
🟢 Metrics 895 complexity · 24 duplication
Metric Results Complexity 895 Duplication 24
AI Reviewer: first review requested successfully. AI can make mistakes. Always validate suggestions.
TIP This summary will be updated as you push new changes.
There was a problem hiding this comment.
Review Summary
This PR adds a tags field for operation prioritization and a gc-watchdog monitoring skill. The implementation is well-structured with comprehensive test coverage (3 IR validation tests, 2 SDK conversion tests, 2 runtime topo tests all passing).
Critical Issue
- Shell script logic error: The regex pattern in
watchdog.shline 22 expects exactly 4 characters aftersv-but attempts to filtersv-wisp-XXXXpatterns that don't match, potentially causing incorrect issue counts.
Positive Aspects
- TypeScript changes follow existing patterns with proper readonly modifiers and optional chaining
- Critical-check prioritization uses stable sort to preserve input order within priority groups
- Test coverage validates both positive and negative cases for the tags field
- ADR-008 provides architectural context for the changes
The TypeScript implementation is solid. Address the shell script regex issue before merging.
You can now have the agent implement changes and create commits directly on your pull request's source branch. Simply comment with /q followed by your request in natural language to ask the agent to make changes.
MergerNeeds Review PR exceeds the merge-gate context budget (317293 tokens); escalating to a human reviewer. Commit |
There was a problem hiding this comment.
Pull Request Overview
The PR successfully implements the tags field and critical task prioritization, but several reliability issues in the new gc-watchdog skill and an algorithmic inefficiency in the runtime need to be addressed before merging.
While the project remains 'up to standards' according to Codacy, the gc-watchdog script is highly susceptible to crashes due to set -o pipefail interacting with grep assignments, and it lacks any automated test coverage. Additionally, the topological sort implementation has been changed from O(V+E) to O(V^2 log V). While acceptable for small plans, a more efficient two-queue approach should be used to maintain performance as the system scales.
About this PR
- The
gc-watchdogscript relies heavily on regex/awk parsing of CLI tool outputs (gc status,bd list). This is inherently fragile as any change to the CLI output format will break the watchdog's health-check logic. Combined with the lack of automated tests for this script, this poses a high maintenance risk.
1 comment outside of the diff
packages/runtime/src/internal/topo.ts
line 16⚪ LOW RISK
Update the documentation at the top oftopoSortto reflect that 'critical' tagged operations take priority over the default input order. The current comment still claims operations are emitted in input order, which is now only true within priority groups.
Test suggestions
- Found: Validate that the IR PlanOperation accepts present, absent, and empty tags arrays.
- Found: Verify that the SDK correctly copies tags from the specification to the generated plan.
- Found: Verify that critical-tagged operations are sorted ahead of non-critical siblings when both are ready.
- Found: Verify that topological sort preserves relative input order for operations within the same priority group.
- Missing: Verify that the gc-watchdog script correctly identifies and filters 'wisp' and 'nudge' tasks from the open work count.
- Missing: Verify that the gc-watchdog script exits with code 0 when the city is idle and healthy, but stays running on failures.
Prompt proposal for missing tests
Consider implementing these tests if applicable:
1. Missing: Verify that the gc-watchdog script correctly identifies and filters 'wisp' and 'nudge' tasks from the open work count.
2. Missing: Verify that the gc-watchdog script exits with code 0 when the city is idle and healthy, but stays running on failures.
TIP Improve review quality by adding custom instructions
TIP How was this review? Give us feedback
PR Summary by QodoAdd tags field, critical-check prioritization in topoSort, gc-watchdog skill
AI Description
Diagram
High-Level Assessment
Files changed (9)
|
Code Review by Qodo
1. Tags not validated
|
5ad921e to
50a1c97
Compare
1c91c54 to
cdee22f
Compare
Backend-agnostic runtime: Executor interface (canExecute/execute), Scheduler with topological sort, concurrent execution within maxConcurrent + optional CPU/memory resource pool, dependent cancellation on fatal failure, continueOnError, StateStore persistence for resume, CacheBackend reuse, RetryPolicy, log/artifact collection. <details> - 64 vitest tests pass - typecheck clean - build green - fixes sv-iqe: ResourcePool now created when either totalCpu or totalMemory is set (independent optionals per spec), defaulting the unset dimension to Infinity </details> Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
HostExecutor implementation: allowlist enforcement, env/credential passing, artifact collection, log truncation, timeout + SIGKILL grace. 47 tests pass across 4 files (allowlist, errors, host-executor, public-api). Typecheck clean, build produces dist/index.mjs + dist/index.d.mts. Reviewer approved (sv-gab). Spec 05 amended to match built runtime contract. <details> - 47 tests pass - typecheck clean - build green - reviewer approved </details> Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- Created eslint.config.mjs (TypeScript-aware, strict, ESM, ESLint 9 flat config) - Added typescript-eslint dependency - Fixed all per-package lint scripts: removed legacy --ext .ts flag (removed in ESLint 9) - Fixed dead imports: core/plan.ts (OperationOutcome), ir/validate.ts (PlanOperation), runtime-host/host-executor.ts (HostTimeoutError) - Relaxed no-unused-vars to warn for test files (standard practice) - Lint now passes repo-wide Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
DockerExecutor implementation: container lifecycle, image pulling, volume mounts, env/credential passing, artifact collection, cache management, timeout handling. Mockable docker-cli.ts seam for unit tests without Docker daemon. Integration tests skip if no Docker. 58 tests pass + 2 skipped (integration). Spec 04 amended to match built runtime contract. Reviewer APPROVED after rework (sv-b3u): collectArtifacts + mount-socket throw test added. <details> - 58 tests pass + 2 skipped (integration) - typecheck clean - build green (dist index.mjs 11.40kB + index.d.mts 4.89kB) - lint clean - reviewer approved (sv-1i2) </details> Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
PlannerImpl with discover() (local signals: languages, package managers, monorepo markers, changed files) and plan() (default plan synthesis). Standalone package (no @sverka/* deps). Mockable git-cli.ts seam. 41 tests pass (errors 5, discover 25, plan 8, public-api 3). Spec 06 trimmed to local-only discover + default plan synthesis. Reviewer APPROVED with 3 non-blocking nits (MonorepoMarker globs, root package.json signal, ProposedCheck.id truncation). <details> - 41 tests pass - typecheck clean - build green - lint clean - reviewer approved (sv-zgk) </details> Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…, version extraction - Resolve relative --config/--baseline paths against --root (not process cwd) via new internal/paths.ts resolveUnderRoot helper (baseline, execute, plan, validate) - Serialize execute outcomes as plain object (Map→Object.fromEntries) for JSON output - Forward --only-new to SDK in plan command (was silently dropped) - Extract numeric version in doctor (regex x.y.z from "git version 2.43.0") - Add 5s timeout to doctor runCheck (prevent hung shim blocking CLI) - Wrap loadBaseline errors as CliError(SDK_ERROR) in baseline update/show - Use process.exitCode instead of process.exit() in bin.ts (avoid truncating buffered I/O) - Add tests: doctor version extraction, execute baseline path + outcomes, validate config path Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
… narrowing, function order - init: use flag:"wx" (exclusive create) when !force to close TOCTOU race between existsSync and writeFile; translate EEXIST to CONFIG_EXISTS - bin.test.ts: fix it.skip() inside it() — tests silently passed when dist/bin.mjs was missing; use it.skipIf(!binBuilt) at describe level - doctor.test.ts: type-narrow JSON.parse result with `as` casts (no any) - baseline.ts: reorder helper functions before dispatcher (readability) Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
bun.lock still recorded sverka bin as ./dist/index.mjs (the library entry, no shebang/bootstrap) while package.json declares ./dist/bin.mjs. Regenerated lockfile entry so lockfile-based installs link the correct executable. Addresses qodo-code-review and cubic-dev-ai review threads on bun.lock. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Address PR #12 review feedback (qodo-code-review threads): 1. Absolute baseline path misresolved: resolveBaselinePath used path.join which rebases absolute --baseline paths beneath --root. Now uses resolveUnderRoot which preserves absolute paths. 2. Clear misses concurrent creation: baselineClear checked existsSync before unlink, creating a TOCTOU window. Now always calls unlink and catches only ENOENT, closing the race. Tests: 74 pass (was 72, +2 new: absolute baseline path, clear without existsSync guard). Full monorepo 16 projects green. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Address Codacy finding: spawnSync without a timeout could block indefinitely if a binary hangs. Added timeout: 5000 to match the reliable behavior in doctor.ts. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…ion) CheckResolver.resolve() maps ProposedCheck + ProjectContext to ResolvedCheck (OperationSpec + CheckOutput[]). createBuiltinResolver() covers 6 checkIds (typecheck, lint, test, clippy, vet, fmt-check) across Node/Python/Rust/Go. extractFindings() reads SARIF artifacts via @sverka/findings.normalizeSarif. CheckError(RESOLUTION_FAILED|EXTRACTION_FAILED) with override on cause. SDK integration: doPlan/doExecute resolve proposed checks into operations, extract findings from SARIF output artifacts after execution. Re-exports added to @sverka/sdk. 32 checks tests + 3 new SDK tests (63 total). Full monorepo green (16 proj). Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Pure function compileGithubWorkflow(plan, config?) that compiles a canonical
Sverka Plan to a GitHub Actions workflow YAML string. Thin wrapper per
ADR-004: single job runs `sverka execute .sverka/plan.json`. Maps plan
credentials to job-level env block with ${{ secrets.VAR }} references.
camelCase→kebab-case conversion for permissions and triggers. Deterministic
output. No custom errors (pure function on validated Plan). 13 tests pass.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…-bun, execute cmd, interface order Address PR #14 review feedback: 1. toKebab leading hyphen: regex added offset check so capitalized first chars don't get a leading hyphen (amazon-q). 2. idToken permission: removed "read" — GitHub Actions only supports "write" for id-token (codeant-ai). 3. sverka execute: removed .sverka/plan.json positional arg — CLI uses strict yargs and rejects unknown args (codeant-ai, critical). 4. setup-bun: added oven-sh/setup-bun@v2 step — ubuntu-latest doesn't include bun (codacy). 5. Interface ordering: moved GithubTriggers and GithubPermissions before GithubCompilerConfig (codacy). Tests: 13 pass. Full monorepo 16 projects green. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
<details> - 8 tests pass (2 files) - typecheck clean - build green - reviewer approved (no nits) </details> Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…cmd, empty rules Address PR #16 review feedback: 1. Default image: changed from node:24 to oven/bun:latest — node:24 does not include bun, so before_script would fail (codeant, qodo). 2. Execute command: removed .sverka/plan.json positional arg — CLI uses strict yargs and rejects unknown args (qodo). 3. Empty rule filtering: filter out empty rule objects {} that would produce invalid GitLab CI YAML (codeant). Tests: 6 pass (was 5, +1 empty rules filtered). Full monorepo 16 proj green. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Add sitemap integration, canonical URLs, 404 page, robots.txt, and fix all code examples to match the actual Sverka SDK API (defineWorkflow, pipeline, task, run from @sverka/sdk). Remove references to non-existent callback-based pipeline API and non-existent `sverka compile` CLI command. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Address PR #17 review feedback (codeant-ai): The quick start installed only the global CLI (@sverka/cli), but sverka init generates a config that imports @sverka/sdk. Without a project-local SDK install, plan/execute/validate fail with a package resolution error. Added `bun add @sverka/sdk` to both index.astro and getting-started.astro install instructions. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Write 10 user-facing documentation pages covering: - Getting started (install, first plan) - Workflow API (pipeline, run, parallel, when, matrix, task, defineWorkflow) - CLI reference (7 commands, global flags, exit codes) - Built-in checks (6 check IDs, per-PM resolution, SARIF extraction) - Compilation targets (GitHub Actions, GitLab CI) - Findings normalization (normalizeSarif, fingerprints, baselines, filterOnlyNew) - Policy evaluation (evaluatePolicy, DEFAULT_POLICY, createPolicy, verdicts) Also updates engdocs/README.md with user docs section and website/src/pages/docs.astro with links to GitHub paths. All code examples verified against actual SDK exports. All internal markdown links resolve. All code fences balanced. Website builds. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…T_POLICY, runtime SDK exports Corrects 3 documentation accuracy issues from reviewer second pass: - extractFindings: async, 3 positional args (outputs, artifactDir, checkId), SARIF-only - DEFAULT_POLICY: both failOn rules (high/all + medium/onlyNew) - workflow-api/overview.md: added Runtime SDK exports section (30 exports) Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Extract the four-role agent team (mayor/architect/builder/reviewer) and
workflow formulas (wave, address-review, bootstrap-sdd) from sverka-specific
root config into a reusable pack at pack/.
The pack is now imported under binding "harness" via [imports.harness] in
pack.toml. Project-specific context (project name, tech stack, wave plan) is
injected via append_fragments patches pointing to
template-fragments/project-context.md.
This separates three layers:
1. Harness (pack/): reusable roles + formulas + doc templates
2. Project docs (REVIEW.md, SECURITY.md, AGENTS.md): project-owned policy
3. Project content (specs/, engdocs/, packages/): project-owned code
To reuse in another project: import this pack via GitHub source, create a
project-context.md fragment, copy REVIEW.md/SECURITY.md/AGENTS.md templates.
Added:
- pack/ — sverka-gc-pack (agents, formulas, template-fragments, README)
- REVIEW.md — sverka review policy (two-axis, verification bar, commit hygiene)
- SECURITY.md — sverka security policy
- template-fragments/project-context.md — sverka context injected into agents
Changed:
- pack.toml — imports ./pack as harness, patches agents with project-context
- agents/{mayor,architect,builder,reviewer}/ — moved to pack/agents/
- formulas/sverka-{wave,bootstrap}.toml — moved to pack/formulas/ (renamed)
Verified: gc doctor clean, gc status shows harness.{mayor,architect,builder,
reviewer} agents loaded, formulas staged in .beads/formulas/.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Three additions to the decoupled harness: 1. Agent skills (pack/skills/) — shared by all harness agents: - sverka-wave: wave planning and execution cycle - sverka-review: two-axis review and gate commands - sverka-drill: failure investigation and root cause isolation 2. CLI skill (skills/sverka/) — publishable via npx skills: - /sverka <command>: init, inspect, plan, execute, validate, baseline, doctor - Install: npx skills add sverka-dev/sverka --skill sverka - Includes references/troubleshooting.md 3. Agent documentation (pack/docs/agent-guide.md): - Describes skills, formulas, roles, and project docs for harness agents Verified: gc doctor (skill-collision ✓), gc sling harness.mayor sv-8g8 (slung OK), all three formulas available via --formula --dry-run (wave, address-review, bootstrap-sdd). Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Per-agent docs (pack/docs/agents/): - mayor.md: always-on orchestrator role, skills, formulas, commands - architect.md: on-demand designer, spec structure, design principles - builder.md: on-demand implementer, TDD workflow, commit hygiene - reviewer.md: on-demand gatekeeper, two-axis review, finding classification E2E test (specs/16-test-harness/spec.md): - Dispatched gc sling harness.mayor wave --formula - Workflow sv-8t1i created with 4 step beads (design/implement/review/finalize) - Dependencies correct, gc.formula_source=pack/formulas/wave.toml - gc.var.binding_name=harness, gc.routed_to=harness.mayor - Confirms decoupled pack works end-to-end Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Codacy's eslint-plugin-es-x rules forbid ES2015+ syntax (arrow functions, const, import, etc.) which is inappropriate for a Node 24 / Bun / TypeScript project. This config: - Excludes non-source paths (tests, configs, docs, markdown, pack, etc.) - Disables all es-x/no-* rules (ES2015+ syntax restrictions) - Disables noisy markdownlint rules (bare URLs, heading duplication) - Disables markdown language analysis entirely - Keeps security and real code quality rules enabled Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Add optional `tags: readonly string[]` to PlanOperation (IR) for prioritization, filtering, and categorization. Pass tags through from OperationSpec in convertToPlan (SDK). Prioritize critical-tagged ops among ready siblings in topoSort (runtime). Changes: - ir/plan.ts: add `tags?: readonly string[]` to PlanOperation - sdk/convert.ts: pass `spec.tags` to PlanOperation in convertOperation - runtime/internal/topo.ts: sortReadyByPriority() — critical ops first among ready siblings, then input order (stable) Tests (TDD): - ir: 3 tests — accepts tags, accepts no tags, accepts empty tags - sdk: 2 tests — passes tags from spec, omits when absent - runtime: 2 tests — critical first among independents, critical first among siblings after dependency completes Closes sv-bni (P3 backlog from Wave 3 / ADR-007). Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Records the architectural decision to add `tags` to PlanOperation and prioritize critical-tagged ops in topoSort. Resolves the deferred critical-check prioritization from ADR-007. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Project-local skill at .agents/skills/gc-watchdog/ that monitors Gas City health and exits when there is no more open or in-progress work. - SKILL.md: documents check cycle, exit conditions, reporting format - watchdog.sh: standalone script — checks gc status + bd list, filters out ephemeral wisp/nudge beads, exits 0 when idle Exit condition: no open real tasks AND no in-progress real tasks AND mayor healthy. Does NOT exit on failure (only on success). Usage: bash .agents/skills/gc-watchdog/watchdog.sh [interval_seconds] Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
50a1c97 to
238bef0
Compare
|
Skipping CodeAnt AI review — this PR changes more than 100 files, which usually means a migration, codemod, or vendored drop. Line-level review on diffs this large produces duplicate findings on the same rewrite pattern and drowns out anything that actually matters. If you still want a review, comment |
|




User description
Summary
Stacked on PR #19 (decouple Gas City harness). Three additions:
tagsfield on IRPlanOperation— optionalreadonly string[]for prioritization, filtering, categorizationtopoSort— critical-tagged ops scheduled first among ready siblings (stable sort, input order preserved within groups).agents/skills/gc-watchdog/with standalone script and exit conditionChanges
packages/ir/src/plan.tstags?: readonly string[]toPlanOperationpackages/sdk/src/convert.tsspec.tagsthrough inconvertOperationpackages/runtime/src/internal/topo.tssortReadyByPriority()— critical first among ready siblingsengdocs/adr/ADR-008-tags-and-critical-prioritization.md.agents/skills/gc-watchdog/SKILL.md.agents/skills/gc-watchdog/watchdog.shTests (TDD)
ir/validate.test.ts: 3 tests — accepts tags, accepts no tags, accepts empty tagssdk/convert.test.ts: 2 tests — passes tags from spec, omits when absentruntime/topo.test.ts: 2 tests — critical first among independents, critical first among siblings after dependencygc-watchdog exit condition
Exits when ALL true:
Does NOT exit on failure — only on clean idle.
Test plan
npx vitest run packages/ir/src/__tests__/validate.test.ts -t "tags"— 3 passnpx vitest run packages/sdk/src/__tests__/convert.test.ts -t "tags"— 2 passnpx vitest run packages/runtime/src/__tests__/topo.test.ts— 11 passnpx nx run ir, sdk, runtime: typecheck— cleannpx nx run ir, sdk, runtime: build— cleanbash .agents/skills/gc-watchdog/watchdog.sh 1— reports IDLE and exits 0Stacked on #19
Generated with Devin
Summary by cubic
Adds
tagsto IR operations, prioritizes"critical"checks among ready siblings, and adds agc-watchdogskill/script to exit cleanly when Gas City is idle. Also brings in CLI, checks, compilers, and docs; addresses Linear sv-bni by delivering the deferred critical-check prioritization from ADR-007.PlanOperation.tags?: readonly string[]; SDK propagatesspec.tags;topoSortschedules"critical"first (stable within groups)..agents/skills/gc-watchdog/withwatchdog.sh(filters wisp/nudge; exits only on clean idle with healthy mayor).@sverka/checks(builtin resolver + SARIF extraction),@sverka/cli(init/inspect/plan/execute/validate/baseline/doctor), compilers@sverka/compiler-githuband@sverka/compiler-gitlab.Written for commit 238bef0. Summary will update on new commits.
CodeAnt-AI Description
Add operation tags, prioritize critical work, and provide a Gas City watchdog
What Changed
criticalandsecurity, including empty tag lists.Impact
✅ Critical checks run sooner✅ Tags remain available for operation filtering and categorization✅ Clearer visibility into Gas City health and remaining work🔄 Retrigger CodeAnt AI Review
💡 Usage Guide
Checking Your Pull Request
Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.
Talking to CodeAnt AI
Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:
This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Example
Preserve Org Learnings with CodeAnt
You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:
This helps CodeAnt AI learn and adapt to your team's coding style and standards.
Example
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:
Check Your Repository Health
To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.