v0 Wave D: Decorator authoring layer - #46
Conversation
🤖 CodeAnt AI — Review Status
|
|
Running ultrareview automatically — This PR introduces a new public decorator authoring layer with metadata-based pipeline synthesis, a large new package (~845 lines) that could hide subtle bugs in decorator semantics, metadata handling, and graph construction affecting end users.. I'll post findings when complete. |
|
I can't run this ultrareview because you've reached your trial's review limit. Trial plans have lower review limits than paid plans. Upgrade now to resume reviews. To help optimise your usage, you can tune cubic to get the most out of your usage limits:
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📜 Recent review details⏰ Context from checks skipped due to timeout. (1)
|
| Layer / File(s) | Summary |
|---|---|
Decorator contracts and specification packages/decorators/src/types.ts, packages/decorators/src/errors.ts, specs/04-authoring-decorators/spec.md |
Defines decorator metadata, step options, planning context, entry targets, input values, error codes, supported values, and validation cases. |
Decorator metadata registration packages/decorators/src/decorators.ts |
Registers pipeline, step, entry, and input metadata. Preserves decorated methods, detects duplicate fields, and validates step options. |
Decorated pipeline synthesis packages/decorators/src/synthesize.ts, packages/decorators/src/__tests__/decorators.test.ts |
Instantiates decorated classes, validates inputs, creates steps and entries in source order, evaluates method-based steps, interpolates references, and reports validation errors. |
Package wiring and public API packages/decorators/package.json, packages/decorators/tsconfig.json, packages/decorators/src/index.ts, packages/decorators/src/__tests__/public-api.test.ts |
Adds package configuration, TypeScript settings, public exports, and API conformance tests. |
Estimated code review effort: 4 (Complex) | ~45 minutes
Mergeability Score: 🟡 Moderate · up to bf5c8
The new decorator authoring path can reject a valid second synthesis of the same class and accept malformed entry definitions, which may lead to failed pipeline creation or invalid graphs. Merge readiness is moderate until these bounded correctness issues are fixed or explicitly accepted by the owner.
Sequence Diagram(s)
sequenceDiagram
participant DecoratedClass
participant decoratePipeline
participant Project
participant Pipeline
participant ShellStep
participant Entry
DecoratedClass->>decoratePipeline: instantiate and read decorator metadata
decoratePipeline->>Project: create pipeline construct
decoratePipeline->>Pipeline: collect inputs and process fields in source order
decoratePipeline->>ShellStep: synthesize string, builder, or method-based steps
decoratePipeline->>Entry: synthesize validated entry targets and triggers
Possibly related PRs
- sverka-dev/sverka#1: Provides the core
Pipeline,StepBuilder, andEntryAPIs used by decorator synthesis. - sverka-dev/sverka#37: Defines the authoring-decorators architecture implemented by this package.
- sverka-dev/sverka#38: Provides the
Project,Pipeline,ShellStep, andEntryconstructs consumed during synthesis.
Suggested labels: baz: needs review
🚥 Pre-merge checks | ✅ 4 | ❌ 1
❌ Failed checks (1 warning)
| Check name | Status | Explanation | Resolution |
|---|---|---|---|
| Docstring Coverage | Docstring coverage is 40.00% which is insufficient. The required threshold is 80.00%. | Write docstrings for the functions missing them to satisfy the coverage threshold. |
✅ Passed checks (4 passed)
| Check name | Status | Explanation |
|---|---|---|
| Linked Issues check | ✅ Passed | Check skipped because no linked issues were found for this pull request. |
| Out of Scope Changes check | ✅ Passed | Check skipped because no linked issues were found for this pull request. |
| Description check | ✅ Passed | The description clearly explains the new decorator package, APIs, synthesis behavior, validation, testing, and migration impact. |
| Title check | ✅ Passed | The title is concise and accurately identifies the decorator authoring layer added by the pull request. |
✨ Finishing Touches 💡 2
📝 Generate docstrings 💡
- Create stacked PR
- Commit on current branch
🛠️ Fix failing CI checks 💡
- Create stacked PR
- Commit on current branch
🧪 Generate unit tests (beta)
- Create PR with unit tests
- Commit unit tests in branch
v0-d-decorators
Comment @coderabbitai help to get the list of available commands.
MergerNeeds Review Fallback decorator metadata registration is not idempotent: a second Commit |
There was a problem hiding this comment.
Review Summary
This PR introduces a new decorator authoring layer for Sverka pipelines with comprehensive test coverage. While the implementation demonstrates good architectural design and proper TC39 decorator usage, there are 5 critical defects that must be addressed before merge:
Critical Issues (Must Fix)
- Null pointer risk in
pipelinedecorator - Non-null assertion oncontext.metadata!can store undefined, causing silent failures - Unhandled constructor errors - Pipeline class instantiation lacks error handling, leading to unclear crash behavior
- Unsafe method execution - User methods execute arbitrary code without isolation during synthesis
- Type safety violation - Duck typing with
"type" in valueaccepts invalid Input objects - Dead code - Unused
registerInputOnMetadatafunction creates maintenance burden
Test Coverage
All 11 tests pass with good conformance validation, but runtime error handling paths remain untested.
Recommendation: Address the 5 critical defects before merging to prevent runtime failures and security risks in production.
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.
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Duplication | 2 |
AI Reviewer: first review requested successfully. AI can make mistakes. Always validate suggestions.
TIP This summary will be updated as you push new changes.
PR Summary by QodoAdd @sverka/decorators authoring layer (TC39 decorators)
AI Description
Diagram
High-Level Assessment
Files changed (12)
|
There was a problem hiding this comment.
Pull Request Overview
This PR introduces the decorator-based authoring layer, but several key features are non-functional or unaddressed. Most notably, the @output decorator is currently a 'no-op' as the synthesis logic completely ignores output metadata. Additionally, the implementation for method-based steps is logically unreachable and type-restricted, which directly contradicts the acceptance criteria.
Codacy analysis indicates the PR is not up to standards. The synthesis engine ('synthesize.ts') exhibits high complexity and code duplication between the string-shorthand and method-planning paths. Several validation scenarios and the entirety of the @output functionality lack test coverage. These architectural and logical issues should be resolved before merging to ensure the authoring layer behaves as specified.
About this PR
- The synthesis engine is currently incomplete. Metadata for
@outputis collected via decorators but is never evaluated or applied during thedecoratePipelinesynthesis process. - There is a systemic misalignment between the decorator definitions and the synthesizer regarding method-based steps. The decorators are typed only for fields, while the synthesizer contains (currently broken) logic for methods.
Test suggestions
- @step string shorthand creates a ShellStep with the correct command
- @stepWithOptions correctly applies timeout and other options to the step
- @step with SDK StepBuilder (sh
...) correctly builds the step - @step as a method decorator for planning multiple operations
- @entry correctly registers triggers and root step IDs
- @input registers pipeline-level input parameters
- @output registers pipeline-level output parameters
- decoratePipeline throws NOT_A_PIPELINE for classes missing the @pipeline decorator
- Validation error: duplicate field decorators on the same class
- Validation error: @entry field initializer is not an array of strings
- Unit test for
shtemplate handler with non-string interpolations
Prompt proposal for missing tests
Consider implementing these tests if applicable:
1. @step as a method decorator for planning multiple operations
2. @output registers pipeline-level output parameters
3. Validation error: duplicate field decorators on the same class
4. Validation error: @entry field initializer is not an array of strings
5. Unit test for `sh` template handler with non-string interpolations
TIP Improve review quality by adding custom instructions
TIP How was this review? Give us feedback
There was a problem hiding this comment.
Actionable comments posted: 10
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/decorators/src/__tests__/decorators.test.ts`:
- Around line 155-165: Replace the partial pipeline length and step/entry ID
assertions in the definition graph comparison test with a complete deep-equality
assertion using expect(graph1).toEqual(graph2), ensuring all graph properties
are compared.
In `@packages/decorators/src/__tests__/public-api.test.ts`:
- Around line 43-47: Remove the tautological runtime assertions for
_opts.timeout, _target, _meta.kind, _kind, and _code in the public API test.
Keep the case as a compile-time-only type check, or replace the literal
comparisons with an assertion that validates the exported types.
In `@packages/decorators/src/decorators.ts`:
- Around line 170-180: Refactor createStepFromField to reduce cognitive
complexity by extracting focused helpers for field-value classification, builder
synthesis, and method synthesis. Keep each helper responsible for one stage and
preserve the existing behavior and output of createStepFromField.
- Around line 12-14: Update FIELDS_KEY in packages/decorators/src/decorators.ts
lines 12-14 and packages/decorators/src/synthesize.ts lines 11-12 to use the
shared Symbol.for("sverka:fields") metadata key instead of a string, preserving
the same key consistently in both files.
- Around line 20-25: Update the pipeline decorator around pipeline and
getPipelineMetadata so each class receives usable per-class metadata when
Symbol.metadata is unavailable. Initialize the Symbol.metadata polyfill before
decoration or use an equivalent per-class registry, and ensure pipeline stores
and getPipelineMetadata retrieves that same metadata object instead of
undefined.
- Around line 58-63: The step and stepWithOptions decorators must support method
contexts in addition to field contexts. Update both decorators to accept method
contexts and process function-valued steps before the invalid-value branch, then
update the planning context in synthesize to expose bare sh calls that record
commands alongside this.sh. Add coverage for an optioned step method asserting
the joined shell command; update packages/decorators/src/decorators.ts:58-63 and
packages/decorators/src/synthesize.ts:110-135 accordingly.
In `@packages/decorators/src/synthesize.ts`:
- Around line 103-106: Update the StepBuilder handling in the value synthesis
path to apply the field’s StepOptions—runtime, timeout, outputs, and
dependsOn—to the builder before invoking build(pipeline, name). Preserve
existing behavior for other field values, and add coverage for
`@stepWithOptions`(...) applied to a builder-valued field.
- Around line 41-46: Update the input-field handling in synthesize so every
`@input` field is validated instead of silently omitted: reject undefined, null,
missing type, or invalid type values by throwing DecoratorError with code
INVALID_FIELD, and only assign valid values to inputs[name].
- Around line 63-67: The input/output cases in the synthesis switch currently
discard `@output` metadata, so either implement end-to-end pipeline output storage
and synthesis through decoratePipeline and Pipeline, or remove `@output` from the
public decorator API and specification until supported. Keep the chosen behavior
consistent across decorator definitions, pipeline handling, and core synthesis.
In `@specs/04-authoring-decorators/spec.md`:
- Around line 149-150: Update the `@step` without initializer test-plan entry to
expect `MISSING_INITIALIZER` instead of `INVALID_FIELD`, matching the error
thrown by `createStepFromField`; leave the `decoratePipeline` case unchanged.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 82846138-3607-42e5-b0bb-aca97b7e4c51
⛔ Files ignored due to path filters (1)
bun.lockis excluded by!**/*.lock
📒 Files selected for processing (11)
packages/decorators/package.jsonpackages/decorators/src/__tests__/decorators.test.tspackages/decorators/src/__tests__/public-api.test.tspackages/decorators/src/decorators.tspackages/decorators/src/errors.tspackages/decorators/src/index.tspackages/decorators/src/registry.tspackages/decorators/src/synthesize.tspackages/decorators/src/types.tspackages/decorators/tsconfig.jsonspecs/04-authoring-decorators/spec.md
📜 Review details
⏰ Context from checks skipped due to timeout. (2)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: Amazon Q Developer
⚠️ CI failures not shown inline (2)
GitHub Actions: CI / main: v0 Wave D: Decorator authoring layer
Conclusion: failure
##[group]✅ > nx run checks:build
> bun run tsdown
�[34mℹ�[39m �[34mtsdown v0.22.14�[39m powered by �[38;2;255;126;23mrolldown v1.2.3�[39m
�[34mℹ�[39m config file: �[4m/home/runner/work/sverka/sverka/packages/checks/tsdown.config.ts�[24m
�[34mℹ�[39m entry: �[34msrc/index.ts�[39m
�[34mℹ�[39m tsconfig: �[34mtsconfig.json�[39m
�[34mℹ�[39m Build start
�[34mℹ�[39m �[2mdist/�[22m�[1mindex.mjs�[22m �[2m 7.87 kB�[22m �[2m│ gzip: 2.34 kB�[22m
�[34mℹ�[39m �[2mdist/�[22mindex.mjs.map �[2m15.70 kB�[22m �[2m│ gzip: 4.27 kB�[22m
�[34mℹ�[39m �[2mdist/�[22mindex.d.mts.map �[2m 0.46 kB�[22m �[2m│ gzip: 0.29 kB�[22m
�[34mℹ�[39m �[2mdist/�[22m�[32m�[1mindex.d.mts�[22m�[39m �[2m 2.70 kB�[22m �[2m│ gzip: 1.05 kB�[22m
�[34mℹ�[39m 4 files, total: 26.73 kB
�[32m✔�[39m Build complete in �[32m1516ms�[39m
##[endgroup]
NX Running target build for 18 projects failed
Tasks not run because their dependencies failed or --nx-bail=true:
- runtime-docker:build
- runtime-host:build
- cli:build
Failed tasks:
- engine-native:build
NX Nx Cloud wasn't able to store artifacts to the remote cache.
NX Nx Cloud encountered some problems
This Nx Cloud organization has been disabled due to exceeding the FREE plan.
Your organization can be re-enabled immediately by an organization admin upgrading to the Team plan at https://cloud.nx.app/orgs/6a7a1e77cff5d2abcf16725d/plans. (code: 401)
##[error]Process completed with exit code 130.
GitHub Actions: CI / 0_main.txt: v0 Wave D: Decorator authoring layer
Conclusion: failure
##[group]✅ > nx run checks:build
> bun run tsdown
�[34mℹ�[39m �[34mtsdown v0.22.14�[39m powered by �[38;2;255;126;23mrolldown v1.2.3�[39m
�[34mℹ�[39m config file: �[4m/home/runner/work/sverka/sverka/packages/checks/tsdown.config.ts�[24m
�[34mℹ�[39m entry: �[34msrc/index.ts�[39m
�[34mℹ�[39m tsconfig: �[34mtsconfig.json�[39m
�[34mℹ�[39m Build start
�[34mℹ�[39m �[2mdist/�[22m�[1mindex.mjs�[22m �[2m 7.87 kB�[22m �[2m│ gzip: 2.34 kB�[22m
�[34mℹ�[39m �[2mdist/�[22mindex.mjs.map �[2m15.70 kB�[22m �[2m│ gzip: 4.27 kB�[22m
�[34mℹ�[39m �[2mdist/�[22mindex.d.mts.map �[2m 0.46 kB�[22m �[2m│ gzip: 0.29 kB�[22m
�[34mℹ�[39m �[2mdist/�[22m�[32m�[1mindex.d.mts�[22m�[39m �[2m 2.70 kB�[22m �[2m│ gzip: 1.05 kB�[22m
�[34mℹ�[39m 4 files, total: 26.73 kB
�[32m✔�[39m Build complete in �[32m1516ms�[39m
##[endgroup]
NX Running target build for 18 projects failed
Tasks not run because their dependencies failed or --nx-bail=true:
- runtime-docker:build
- runtime-host:build
- cli:build
Failed tasks:
- engine-native:build
NX Nx Cloud wasn't able to store artifacts to the remote cache.
NX Nx Cloud encountered some problems
This Nx Cloud organization has been disabled due to exceeding the FREE plan.
Your organization can be re-enabled immediately by an organization admin upgrading to the Team plan at https://cloud.nx.app/orgs/6a7a1e77cff5d2abcf16725d/plans. (code: 401)
##[error]Process completed with exit code 130.
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{ts,tsx}
📄 CodeRabbit inference engine (AGENTS.md)
**/*.{ts,tsx}: - Noany: Useunknownand narrow. Strict TypeScript.
- Error handling: Custom error classes per package.
Files:
packages/decorators/src/types.tspackages/decorators/src/errors.tspackages/decorators/src/__tests__/decorators.test.tspackages/decorators/src/registry.tspackages/decorators/src/__tests__/public-api.test.tspackages/decorators/src/synthesize.tspackages/decorators/src/index.tspackages/decorators/src/decorators.ts
**/src/index.ts
📄 CodeRabbit inference engine (AGENTS.md)
- Public API: Everything public is exported from
src/index.ts.
Files:
packages/decorators/src/index.ts
🧠 Learnings (3)
📚 Learning: 2026-08-12T07:24:02.495Z
Learnt from: CR
Repo: sverka-dev/sverka PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-08-12T07:24:02.495Z
Learning: Applies to **/*.{ts,tsx} : - **Error handling:** Custom error classes per package.
Applied to files:
packages/decorators/tsconfig.jsonpackages/decorators/src/errors.ts
📚 Learning: 2026-08-12T07:24:02.495Z
Learnt from: CR
Repo: sverka-dev/sverka PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-08-12T07:24:02.495Z
Learning: Applies to **/src/index.ts : - **Public API:** Everything public is exported from `src/index.ts`.
Applied to files:
packages/decorators/tsconfig.jsonpackages/decorators/src/__tests__/public-api.test.tspackages/decorators/src/index.ts
📚 Learning: 2026-08-12T07:24:02.495Z
Learnt from: CR
Repo: sverka-dev/sverka PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-08-12T07:24:02.495Z
Learning: Applies to **/*.{ts,tsx} : - **No `any`:** Use `unknown` and narrow. Strict TypeScript.
Applied to files:
packages/decorators/tsconfig.json
🪛 GitHub Check: SonarCloud Code Analysis
packages/decorators/src/__tests__/decorators.test.ts
[warning] 155-155: Prefer "expect(graph1.project.pipelines).toHaveLength(graph2.project.pipelines.length)" over this generic assertion for better reporting; it works on any object with a numeric length property.
packages/decorators/src/__tests__/public-api.test.ts
[warning] 46-46: Replace this assertion; it always succeeds.
[warning] 47-47: Replace this assertion; it always succeeds.
packages/decorators/src/synthesize.ts
[warning] 93-93: Either remove this useless object instantiation of "ShellStep" or use it.
[warning] 127-127: Either remove this useless object instantiation of "ShellStep" or use it.
[warning] 177-177: 'unknown' overrides all other types in this union type.
[warning] 168-168: Either remove this useless object instantiation of "Entry" or use it.
[failure] 83-83: Refactor this function to reduce its Cognitive Complexity from 29 to the 15 allowed.
🔇 Additional comments (9)
packages/decorators/src/types.ts (1)
3-22: LGTM!packages/decorators/src/errors.ts (1)
3-20: LGTM!packages/decorators/src/__tests__/decorators.test.ts (1)
15-127: LGTM!Also applies to: 169-179
packages/decorators/package.json (2)
1-20: LGTM!Also applies to: 29-30
21-28: 🩺 Stability & AvailabilityKeep
@sverka/coreindevDependencies. Only the test suite imports it; production source does not reference it.> Likely an incorrect or invalid review comment.packages/decorators/src/index.ts (1)
1-6: LGTM!packages/decorators/src/registry.ts (1)
1-4: LGTM!packages/decorators/src/__tests__/public-api.test.ts (1)
1-35: LGTM!packages/decorators/tsconfig.json (1)
1-8: LGTM!
Code Review by Qodo
1.
|
06b63e4 to
4d1fd49
Compare
4d1fd49 to
028b8da
Compare
028b8da to
d804349
Compare
d804349 to
422ccab
Compare
422ccab to
0857816
Compare
d647ab8 to
ddc6189
Compare
Co-Authored-By: Petr Plenkov <petr.plenkov@gmail.com>
ddc6189 to
1b23247
Compare
Co-Authored-By: Petr Plenkov <petr.plenkov@gmail.com>
1b23247 to
b63752d
Compare
|
View your CI Pipeline Execution ↗ for commit ab2ea85
💡 Verify your cache is correct by running tasks in a sandbox. Read docs ↗ ☁️ Nx Cloud last updated this comment at |
Co-Authored-By: Petr Plenkov <petr.plenkov@gmail.com>
|
New @sverka/decorators package — the third authoring surface. Uses TC39 standard decorators (TypeScript 5.0+, no experimentalDecorators). Decorators: - @pipeline: class decorator marking a Sverka pipeline - @step: field decorator for string shorthand or StepBuilder - @stepWithOptions(options): factory form for step with runtime/timeout/outputs - @entry(trigger): field decorator for entry definitions - @input: field decorator for pipeline inputs - @output: field decorator for pipeline outputs decoratePipeline(PipelineClass, project, id) creates a Pipeline construct from a decorated class, producing the same Definition Graph as the Construct and SDK APIs. Metadata is stored via context.metadata (TC39 per-class metadata object), retrieved from the class constructor via a Symbol property (Symbol.metadata is not yet widely implemented in Bun). 11 decorator tests (8 behavior + 3 public API). 102 tests across 4 packages. No any types. override readonly cause present. Specs: 04-authoring-decorators (§9.3–9.8, §12, §14, §15). Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…ethod-step support Co-Authored-By: Petr Plenkov <petr.plenkov@gmail.com>
Co-Authored-By: Petr Plenkov <petr.plenkov@gmail.com>
Co-Authored-By: Petr Plenkov <petr.plenkov@gmail.com>
Split validateStepOptions (complexity 14→4) into per-field validators and validateInput (complexity 13→4) into typed helper functions. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- S1848: Add void operator to CDK construct instantiations (BUG, MAJOR) - S3776: Extract createStepFromMethod to reduce cognitive complexity (CRITICAL) - S4623: Remove redundant undefined argument (MAJOR) - S1128: Remove unused PlanningContext import (MINOR) - S2699: Add assertions to compile-time type test (BLOCKER) - S5914: Replace always-succeeding assertions with real checks (MAJOR) Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|



User description
Summary
@sverka/decoratorspackage — 3rd authoring surface (after Construct API and SDK)@pipeline,@step,@stepWithOptions,@entry,@input,@outputdecoratePipeline(PipelineClass, project, id)creates a Pipeline construct from a decorated class@stepsplit into@step(bare) and@stepWithOptions(factory) to avoid TDZ issues under esbuild/vitestTest plan
anytypesGenerated with Devin
Summary by cubic
Adds
@sverka/decorators, a TC39-standard decorator authoring layer that synthesizes the same Definition Graph as the Construct/SDK APIs. Removes pipeline-level@output; step outputs now come fromStepOptions.outputsorStepBuilder.outputs().Summary
@pipeline,@step,@step(options)/@stepWithOptions,@entry(trigger),@input,decoratePipeline(PipelineClass, project, id).StepBuilderor usethis.shto compose commands joined with " && "; supports string/number/boolean/Reference interpolation and collects inputs.runtime,timeout,outputs, anddependsOnto bothShellStepandStepBuilder.Symbol.for('sverka:pipeline:metadata')with fields atSymbol.for('sverka:fields'); decorators usecontext.metadataoraddInitializer.INVALID_FIELD,MISSING_INITIALIZER,INVALID_OPTIONS,DUPLICATE_FIELD,NOT_A_PIPELINE. Preserves source order and matches Construct/SDK graphs in specs/tests.Migration
@outputusage withStepOptions.outputsorStepBuilder.outputs(...).Written for commit ab2ea85. Summary will update on new commits.
CodeAnt-AI Description
Add a decorator-based way to author Sverka pipelines
What Changed
@sverka/decoratorswith@pipeline,@step,@stepWithOptions,@entry, and@inputImpact
✅ Decorator-authored pipelines✅ Reusable step methods with output references✅ Clearer pipeline authoring errors💡 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.