Skip to content

ci: add reusable phenotype workflows#14

Open
KooshaPari wants to merge 3 commits intomainfrom
chore/add-reusable-workflows
Open

ci: add reusable phenotype workflows#14
KooshaPari wants to merge 3 commits intomainfrom
chore/add-reusable-workflows

Conversation

@KooshaPari
Copy link
Copy Markdown
Owner

This PR adds standardized CI workflows using the phenotype-infrakit reusable workflows.

Workflows Added

  • CI: Runs format, lint, and test checks on push/PR
  • Coverage: Uploads coverage reports to codecov
  • Quality Gate: PR quality checks (for Rust projects)
  • Publish: Package publishing workflow (language-specific)

Benefits

  • Consistent CI/CD across all phenotype repositories
  • Reduced maintenance burden (centralized workflow updates)
  • Standardized quality gates and coverage reporting
  • Automated publishing to crates.io/npm/PyPI

Reusable Workflows Source

All workflows call reusable workflows from:


Generated by reusable workflows rollout script

Forge added 3 commits April 4, 2026 03:25
Adds legacy-tooling-gate.yml monitoring per CLAUDE.md Technology Adoption Philosophy.

Refs: phenotype/repos/tooling/legacy-enforcement/
@cursor
Copy link
Copy Markdown

cursor bot commented Apr 6, 2026

You have used all Bugbot PR reviews included in your free trial for your GitHub account on this workspace.

To continue using Bugbot reviews, enable Bugbot for your team in the Cursor dashboard.

@codeant-ai
Copy link
Copy Markdown

codeant-ai bot commented Apr 6, 2026

Your free trial PR review limit of 100 PRs has been reached. Please upgrade your plan to continue using CodeAnt AI.

python-version: '3.12'

- name: Install dependencies
run: pip install pyyaml
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

WARNING: Unpinned dependency - pip install pyyaml has no version constraint. This could cause CI failures if pyyaml releases breaking changes. Consider pinning to a specific version (e.g., pyyaml>=6.0) to ensure reproducible builds.

@kilo-code-bot
Copy link
Copy Markdown

kilo-code-bot bot commented Apr 6, 2026

Code Review Summary

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
.github/workflows/legacy-tooling-gate.yml 35 Unpinned pip dependency - pip install pyyaml has no version constraint
Other Observations (not in diff)

No other issues found in unchanged code.

Files Reviewed (3 files)
  • .github/workflows/legacy-tooling-gate.yml - 1 issue
  • PLAN.md - No issues (documentation)
  • SPEC.md - No issues (documentation)

Notes:

  • The PR adds CI workflows for the BytePort project using reusable phenotype workflows
  • PLAN.md and SPEC.md are new documentation files - appropriate for a new project
  • The legacy-tooling-gate.yml workflow runs an anti-pattern scanner in WARN mode
  • Minor: Consider pinning the pyyaml version to ensure reproducible builds

Review generated by Kilo


Reviewed by minimax-m2.5 · 133,594 tokens

Copy link
Copy Markdown

@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 the project's foundational documentation, including a technical specification, an implementation roadmap, and versioning. The review feedback identifies several discrepancies between the specification and the actual codebase, such as mismatched interface signatures, an inaccurate project structure, and inconsistent data models in examples. Additionally, the reviewer pointed out a missing type definition, a broken link, and a need to update the PR metadata to accurately reflect these changes.

@@ -0,0 +1,331 @@
# BytePort — SPEC.md
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

high

The Pull Request title and description (referencing CI workflows) do not match the actual changes, which focus on project documentation and specification for BytePort. Please update the PR metadata to accurately reflect the implementation of the specification and roadmap to maintain a clear repository history.


| Component | Responsibility | Interface |
|-----------|----------------|-----------|
| `ManifestParser` | NVMS manifest validation | `Parse(manifest []byte) (*DeploymentConfig, error)` |
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The specified interface Parse(manifest []byte) for ManifestParser does not align with the current implementation in backend/nvms/projectManager/parser.go, which uses parseNVMSConfig(yamlContent string). It is recommended to synchronize the specification with the actual code to ensure documentation accuracy.

| `DeployEngine` | AWS resource provisioning | `Deploy(config *DeploymentConfig) (*Deployment, error)` |
| `NanoVMSManager` | MicroVM lifecycle | `CreateVM(spec VMSpec) (*VM, error)` |
| `PortfolioGenerator` | UX template generation | `Generate(project *Project) (*PortfolioPage, error)` |
| `LLMBackend` | Template text generation | `GenerateDescription(project Project) (string, error)` |
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The interface for LLMBackend is defined as GenerateDescription(project Project), but the implementation in backend/nvms/lib/llm.go uses RequestCompletion(prompt string, strStruct string, config models.LLM). These should be aligned to accurately reflect the system architecture.

Comment on lines +82 to +83
ENV:
- API_URL=http://localhost:8081
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

There is a discrepancy between the example manifest and the data model. The example uses a list for environment variables, while the Service struct on line 121 defines Env as a map[string]string. The example should be updated to use map syntax for consistency with the intended Go model.

Suggested change
ENV:
- API_URL=http://localhost:8081
ENV:
API_URL: "http://localhost:8081"

Description string `yaml:"DESCRIPTION"`
Services []Service `yaml:"SERVICES"`
Infra Infrastructure `yaml:"INFRASTRUCTURE"`
Portfolio PortfolioConfig `yaml:"PORTFOLIO"`
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The PortfolioConfig struct referenced in DeploymentConfig is not defined in the Data Models section. Defining all referenced types is essential for a complete and actionable specification.

## Project Structure

```
BytePort/
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The project structure described in the specification does not match the actual file layout provided in the context (e.g., core logic is located in backend/nvms/ instead of backend/byteport/). Updating this section will help maintainers navigate the codebase.

- [AWS SDK for Go](https://aws.github.io/aws-sdk-go-v2/)
- [Firecracker MicroVMs](https://firecracker-microvm.github.io/)
- [SpinCLI Documentation](https://developer.fermyon.com/spin)
- [NVMS Manifest Spec](./docs/NVMS_SPEC.md)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The link to ./docs/NVMS_SPEC.md is broken as the file is not included in this pull request or the current repository structure.

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.

1 participant