Skip to content

Comments

chore(release): prepare 0.10.0 CI and packaging flow#2

Merged
marlon-costa-dc merged 17 commits intomainfrom
0.10.0-dev
Feb 20, 2026
Merged

chore(release): prepare 0.10.0 CI and packaging flow#2
marlon-costa-dc merged 17 commits intomainfrom
0.10.0-dev

Conversation

@marlon-costa-dc
Copy link
Contributor

@marlon-costa-dc marlon-costa-dc commented Feb 20, 2026

Summary

  • harden workflow sync to use workspace CI as canonical source
  • force overwrite subproject ci.yml and prune non-canonical workflows
  • fix dependency sync/discovery root causes and move reports to .reports
  • prepare 0.10.0-dev rollout branch across flext + subprojects

Summary by cubic

Prepares the 0.10.0 rollout with a canonical CI, unified .reports artifacts, hardened dependency/workflow sync, and a tag-driven workspace release flow.

  • New Features

    • Canonical CI (.github/workflows/ci.yml) runs make setup/check/test/validate in advisory mode; installs Poetry and markdownlint; template at .github/ci-template/ci.yml; removed non-canonical workflows.
    • Tag-driven release automation via scripts/release/* (run, version, build, notes, changelog, shared); Makefile adds build and release verbs.
    • Workflow sync tool (scripts/github/sync_workflows.py) propagates CI into subprojects and prunes non-canonical files; discovery supports --format json; tests added.
    • Workflow linting (scripts/github/lint_workflows.py) writes .reports/workflows/actionlint.json.
    • Dependency sync hardened: validates repo URLs and git refs; respects FLEXT_WORKSPACE_ROOT; tests included.
    • Standardized reports under .reports; updated validators/docs; bumped version to 0.10.0 with refreshed lockfile and subproject refs (including flext-core).
  • Migration

    • Run scripts/github/sync_workflows.py across subprojects and update any .sisyphus/reports paths to .reports.
    • To publish, push a tag (vX.Y.Z) and/or run scripts/release/run.py.

Written for commit ea9875f. Summary will update on new commits.

@coderabbitai
Copy link

coderabbitai bot commented Feb 20, 2026

Warning

Rate limit exceeded

@marlon-costa-dc has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 1 minutes and 14 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 0.10.0-dev

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.

@gemini-code-assist
Copy link

Summary of Changes

Hello @marlon-costa-dc, 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 prepares the project for its 0.10.0 release by refining core infrastructure and development workflows. Key changes include standardizing report output locations, enhancing dependency management, and automating GitHub CI workflow synchronization across subprojects. Additionally, the project's main documentation has been updated to reflect a new portfolio overview, and various internal and external dependencies have been refreshed.

Highlights

  • Report Path Standardization: Standardized all internal report output paths from .sisyphus/reports/ to a unified .reports/ directory across various skill documentation and scripts.
  • GitHub Workflow Synchronization: Introduced a new script (scripts/github/sync_workflows.py) and integrated it into the Makefile to automatically synchronize GitHub CI workflows across subprojects, ensuring canonical ci.yml files are enforced and non-canonical ones are pruned.
  • Dependency Synchronization Enhancements: Improved the sync_internal_deps.py script to robustly determine the workspace root (via environment variables or parent .gitmodules files) and to synthesize repository maps for standalone dependency resolution when flext-repo-map.toml is absent.
  • Dependency Updates: Updated numerous Python package dependencies in poetry.lock, including autoflake, cyclopts, grpcio, isort, jsonschema-path, mkdocstrings-python, pathable, pylint, and stevedore, and removed griffe and griffecli.
  • Project Version Bump: Updated the main project version in pyproject.toml from 0.10.0-dev to 0.10.0.
  • README.md Overhaul: Completely rewrote the main README.md to provide a Portuguese overview of the project's data integration portfolio, replacing the previous English description of features and architecture.
  • Submodule Updates: Updated the commit hashes for all flexcore and flext-* submodules, indicating updates to these integrated projects.
Changelog
  • .claude/skills/scripts-architecture/SKILL.md
    • Updated documentation to reflect the new .reports/ directory for analysis output.
  • .claude/skills/scripts-dependencies/SKILL.md
    • Updated documentation to reflect the new .reports/ directory for dependency analysis output.
  • .claude/skills/scripts-infra/SKILL.md
    • Updated documentation to reflect the new .reports/ directory for report output examples.
  • .claude/skills/scripts-infra/validate_artifact_naming.py
    • Updated script docstring to reference .reports/ instead of .sisyphus/.
    • Modified VALIDATED_TOP_DIRS to validate artifacts directly under the root and added new skipped directories.
    • Updated argument parser description to mention .reports/.
    • Refactored should_validate and collect_artifacts functions to use reports_root instead of sisyphus_root and adjusted validation logic for top-level directories.
    • Updated validate function to use reports_root parameter.
    • Modified run_main to define reports_root as .reports and pass it to the validate function.
  • .claude/skills/scripts-security/SKILL.md
    • Updated documentation to reflect the new .reports/ directory for security audit output.
  • .claude/skills/scripts-testing/SKILL.md
    • Updated documentation to reflect the new .reports/ directory for structured test reports.
  • .claude/skills/workspace-maintenance/SKILL.md
    • Updated documentation to reflect the new .reports/ directory for workspace maintenance reports.
  • CLAUDE.md
    • Updated documentation to specify that workspace validation artifacts must now live under .reports/.
  • Makefile
    • Modified setup target to pass FLEXT_WORKSPACE_ROOT environment variable to sync_internal_deps.py.
    • Modified upgrade target to pass FLEXT_WORKSPACE_ROOT environment variable to sync_internal_deps.py.
    • Added a new step to the upgrade target to sync GitHub workflow templates using scripts/github/sync_workflows.py.
    • Changed the directory creation for workspace validation from .sisyphus/reports to .reports.
  • README.md
    • Completely rewrote the content to provide a Portuguese overview of the project portfolio and its current status.
  • docs/scripts/gate-contract.md
    • Updated documentation to reflect the new .reports/validation directory for validation reports.
    • Clarified artifact naming rule to target explicit report paths under .reports/.
  • flexcore
    • Updated submodule to commit 502821828f649b5c68585451e3ac17a85ede9093.
  • flext-api
    • Updated submodule to commit 4c074d202853779326e487e9edb368e3c844fc3c.
  • flext-auth
    • Updated submodule to commit 541b4bb2dc56bec6a35ab39fb92f865ad2c5a9a8.
  • flext-cli
    • Updated submodule to commit ac7f5a74c9110b17b4627afad23a8134cb24302a.
  • flext-core
    • Updated submodule to commit 21345eea44e48c84baaa44a77ee567962bab1f19.
  • flext-db-oracle
    • Updated submodule to commit 12a9b4a686d3eda9f2b52414b93396966ff15031.
  • flext-dbt-ldap
    • Updated submodule to commit 315176f69a8176ed05254be828d732abd28a8ece.
  • flext-dbt-ldif
    • Updated submodule to commit 6f5a229ed3ea4bca040a57ed3a5930b508224f43.
  • flext-dbt-oracle
    • Updated submodule to commit 34ba2ee06702bd57f3a9fb5d5518e03620dfaca4.
  • flext-dbt-oracle-wms
    • Updated submodule to commit 5f47f8b6626431129030b73a6b48be0db802ce59.
  • flext-grpc
    • Updated submodule to commit 9e63afee86fbf1f23f00ff8a296cee4bde0b1840.
  • flext-ldap
    • Updated submodule to commit 61ee3572c673e7d1e1d39dafc511b039afc58b85.
  • flext-ldif
    • Updated submodule to commit 35533dd1fc62074e1f35e9a895a447a763b20d87.
  • flext-meltano
    • Updated submodule to commit 937c6d2ff5992732dc51c142b079347f32cf4712.
  • flext-observability
    • Updated submodule to commit fad190c4d4ca7ef51fe13e9bd98da0b94f271f8f.
  • flext-oracle-oic
    • Updated submodule to commit 6dbe995b3a9678b824d3af09e897ce818199c059.
  • flext-oracle-wms
    • Updated submodule to commit 5d34910859768435e336ab152e54c7427c90f165.
  • flext-plugin
    • Updated submodule to commit ef6785f7a19c3078edcb739916360fb5026b9804.
  • flext-quality
    • Updated submodule to commit d8264478b105634a1c29da80861a7b7ed85aefc6.
  • flext-tap-ldap
    • Updated submodule to commit 06bd9f2e71c113313c3fdb36aa53677d87fa3877.
  • flext-tap-ldif
    • Updated submodule to commit 2b5c2a950534bcf164bbecb2b83af12a4ff129dc.
  • flext-tap-oracle
    • Updated submodule to commit 6f4bb6cfa0caaf593cfdb6bee74444a0b2c92bba.
  • flext-tap-oracle-oic
    • Updated submodule to commit 86fdfd1cdc94f9be2f10232fa8793d53a2e20aa5.
  • flext-tap-oracle-wms
    • Updated submodule to commit ccb63c30aa35c9767a0443bd840a51d93d1ccae7.
  • flext-target-ldap
    • Updated submodule to commit 35d8bc1cb4c717371ee0946c2f48f9769a7d2bb5.
  • flext-target-ldif
    • Updated submodule to commit 449f7aa37875cfd3a63c8ef6a2fc4b29cfc60ad6.
  • flext-target-oracle
    • Updated submodule to commit faf8977306f5157352f826afec2d69fe43f8aac1.
  • flext-target-oracle-oic
    • Updated submodule to commit 523b73335fe30554bb19480e50e97a2a76b6c36e.
  • flext-target-oracle-wms
    • Updated submodule to commit 924449e3f4eabf8a989cfacef6ee55d6f5d383f9.
  • flext-web
    • Updated submodule to commit 7c6f08d2be3812cd32022db495f07b76bc79dec1.
  • poetry.lock
    • Updated autoflake from 2.3.2 to 2.3.3.
    • Updated cyclopts from 4.5.3 to 4.5.4.
    • Removed griffe and griffecli packages.
    • Updated grpcio from 1.78.0 to 1.78.1.
    • Updated grpcio-tools from 1.78.0 to 1.78.1.
    • Updated isort from 7.0.0 to 8.0.0.
    • Updated jsonschema-path from 0.3.4 to 0.4.1 and adjusted its Python version requirement.
    • Updated mkdocstrings-python from 2.0.2 to 2.0.3 and changed its griffe dependency to griffelib.
    • Updated pathable from 0.4.4 to 0.5.0 and adjusted its Python version requirement.
    • Updated pylint from 4.0.4 to 4.0.5 and adjusted its isort dependency range.
    • Updated stevedore from 5.6.0 to 5.7.0.
  • pyproject.toml
    • Updated the project version from 0.10.0-dev to 0.10.0.
  • scripts/core/generate_scripts_inventory.py
    • Modified _artifact_path function to generate paths under .reports instead of .sisyphus.
    • Updated outputs dictionary to use the new _artifact_path signature.
  • scripts/dependencies/sync_internal_deps.py
    • Added helper functions _is_relative_to, _workspace_root_from_env, and _workspace_root_from_parents for more robust workspace root detection.
    • Enhanced _is_workspace_mode to prioritize environment variable FLEXT_WORKSPACE_ROOT and heuristic parent .gitmodules detection.
    • Added helper functions _owner_from_remote_url, _infer_owner_from_origin, and _synthesized_repo_map to infer GitHub owner and synthesize repo maps for standalone mode when flext-repo-map.toml is missing.
  • scripts/github/sync_workflows.py
    • Added a new script to synchronize GitHub CI workflows across subprojects.
    • Implemented functions for project discovery, template rendering, project synchronization (create, update, prune), and report generation.
    • Defined GENERATED_HEADER and MANAGED_FILES for workflow management.
    • Introduced Operation dataclass to track synchronization actions.
  • scripts/maintenance/_discover.py
    • Imported json module.
    • Added json as a new output format option to the argument parser.
    • Implemented logic to print discovered projects in JSON format when requested.
  • tests/scripts/dependencies/test_sync_internal_deps.py
    • Added new test cases for sync_internal_deps.py to verify workspace root detection from environment variables and parent .gitmodules.
    • Added a test case for standalone fallback that synthesizes repo URLs when flext-repo-map.toml is missing.
  • tests/scripts/github/test_sync_workflows.py
    • Added new test cases for sync_workflows.py to verify workflow creation from templates, overwriting existing CI files, pruning non-canonical workflows, and proper report generation.
  • tests/scripts/maintenance/test_discover.py
    • Added a new test case for _discover.py to verify its JSON output format functionality.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/ci.yml
Activity
  • The pull request was initiated to prepare for the 0.10.0 release, focusing on CI/CD and packaging improvements.
  • Report output paths were globally updated from .sisyphus/reports/ to .reports/ for consistency.
  • A new Python script (sync_workflows.py) was introduced to automate the synchronization and pruning of GitHub CI workflows across subprojects.
  • The dependency synchronization script (sync_internal_deps.py) received enhancements for workspace root detection and dynamic repository map generation.
  • Numerous Python package dependencies were updated to their latest versions, and some deprecated packages were removed.
  • The main README.md was completely rewritten to reflect a new project overview in Portuguese.
  • All submodules were updated to their latest respective commits.
  • New unit tests were added for the sync_internal_deps.py, sync_workflows.py, and _discover.py scripts to ensure the correctness of the new and modified functionalities.
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.

Copy link

@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 is a significant step towards preparing for the 0.10.0 release. It introduces a robust, centralized CI workflow system with a new script to sync configurations across all subprojects, complete with tests. The dependency synchronization logic has been hardened to be more reliable in different environments. Additionally, the repository's artifact structure has been standardized by moving all reports to a top-level .reports directory. My review focuses on a major change to the main README.md file, which has been completely rewritten and could impact developer onboarding.

Comment on lines +1 to +61
# FLEXT

Portifolio de 33 projetos de integracao de dados, revisados individualmente para orientar decisao tecnica e operacao.

## O que o repositorio consolida

- Bases arquiteturais para API, autenticacao, runtime, observabilidade e qualidade.
- Conectores Singer (taps e targets) para LDAP, LDIF, Oracle, OIC e WMS.
- Projetos dbt para publicacao de camada analitica por dominio.
- Solucoes operacionais dedicadas para cenarios de migracao e clientes.

## Projetos revisados caso a caso

| Projeto | Papel funcional no ecossistema |
| --- | --- |
| `algar-oud-mig` | Ferramenta operacional para migracao LDAP/LDIF de Oracle Internet Directory (OID) para Oracle Unified Directory (OUD) com execucao por fases. |
| `flexcore` | Runtime hibrido Go/Python para inicializacao de servicos e coordenacao operacional de componentes FLEXT. |
| `flext-api` | Camada de API HTTP para exposicao e consumo de servicos de dados no ecossistema FLEXT. |
| `flext-auth` | Servico de autenticacao e autorizacao para controle de acesso entre APIs, CLIs e componentes FLEXT. |
| `flext-cli` | Framework de linha de comando para construir interfaces operacionais padronizadas no portfolio FLEXT. |
| `flext-core` | Base arquitetural compartilhada do ecossistema, com contratos, utilitarios e padroes transversais. |
| `flext-db-oracle` | Biblioteca de acesso Oracle para leitura, escrita e suporte de persistencia em pipelines de dados. |
| `flext-dbt-ldap` | Projeto dbt para transformar dados LDAP em modelos analiticos operacionais e de auditoria. |
| `flext-dbt-ldif` | Projeto dbt para modelagem analitica de dados extraidos de arquivos LDIF. |
| `flext-dbt-oracle` | Projeto dbt para transformar dados Oracle em estruturas analiticas reutilizaveis. |
| `flext-dbt-oracle-wms` | Projeto dbt especializado na transformacao de dados Oracle WMS para analise operacional logistica. |
| `flext-grpc` | Camada gRPC para comunicacao service-to-service de baixa latencia entre componentes FLEXT. |
| `flext-ldap` | Biblioteca de operacoes LDAP para leitura, escrita e sincronizacao de identidades em diretorios corporativos. |
| `flext-ldif` | Biblioteca para parsing, validacao e transformacao de arquivos LDIF em fluxos de migracao de diretorio. |
| `flext-meltano` | Camada de orquestracao Singer/Meltano para coordenar extracao, carga e transformacao em pipelines FLEXT. |
| `flext-observability` | Componente de observabilidade para metricas, tracing e diagnostico operacional de servicos e pipelines. |
| `flext-oracle-oic` | Biblioteca de integracao com Oracle Integration Cloud para operacoes de conectividade e interoperabilidade. |
| `flext-oracle-wms` | Biblioteca de integracao com Oracle WMS para acesso a dados operacionais de armazem. |
| `flext-plugin` | Sistema de plugins para extensao modular de funcionalidades sem alterar o nucleo da plataforma. |
| `flext-quality` | Camada de validacao tecnica para qualidade, conformidade e seguranca no ecossistema FLEXT. |
| `flext-tap-ldap` | Singer Tap para extracao de dados de diretorios LDAP em pipelines de integracao. |
| `flext-tap-ldif` | Singer Tap para extracao de dados a partir de arquivos LDIF. |
| `flext-tap-oracle` | Singer Tap para extracao de dados de bancos Oracle para pipelines ELT. |
| `flext-tap-oracle-oic` | Singer Tap para extracao de entidades e dados de Oracle Integration Cloud. |
| `flext-tap-oracle-wms` | Singer Tap para extracao de dados operacionais de Oracle Warehouse Management System. |
| `flext-target-ldap` | Singer Target para aplicacao de dados em destinos LDAP. |
| `flext-target-ldif` | Singer Target para materializar saida de pipeline em formato LDIF. |
| `flext-target-oracle` | Singer Target para carga de dados em banco Oracle como destino final de pipeline. |
| `flext-target-oracle-oic` | Singer Target para enviar dados a recursos Oracle Integration Cloud. |
| `flext-target-oracle-wms` | Singer Target para aplicar dados em Oracle WMS como destino operacional. |
| `flext-web` | Camada web para operacao e visualizacao das capacidades do ecossistema FLEXT. |
| `gruponos-meltano-native` | Pipeline ETL Meltano dedicado ao contexto Grupo Nos, com foco operacional em cargas Oracle WMS. |

## Estado atual do portfolio

- Qualidade global: **Alpha**
- Uso recomendado: **Nao produtivo**
- Aplicacao permitida: desenvolvimento, POC e homologacao controlada.

## Diretriz de governanca desta revisao

Cada README foi tratado individualmente com foco no que o projeto faz, no contexto operacional de uso e no risco atual de adocao.

## Repositorio oficial

Codigo-fonte e governanca: [github.com/flext-sh/flext](https://github.com/flext-sh/flext).

Choose a reason for hiding this comment

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

medium

The complete rewrite of the README.md introduces two potential issues:

  1. Language Inconsistency: The new content is in Portuguese, while the rest of the repository, including the PR description, code, and other documentation, is in English. This creates an inconsistency that can be confusing for a global audience. It's generally best practice to maintain a single primary language for a project's documentation.
  2. Loss of Developer Information: The previous version contained valuable information for developers, such as a quick start guide, architecture diagrams, and a summary of the make workflow. This information is crucial for onboarding new contributors. The new version is a high-level portfolio overview and omits these important details.

While the new content might be useful elsewhere, the root README.md is the most critical document for developers approaching the repository for the first time. I'd recommend either restoring the key developer-focused sections (like setup and development workflow) or moving this new portfolio overview to a different file (e.g., PORTFOLIO.md) and reverting the README.md to a more developer-centric guide.

Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

4 issues found across 52 files

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name=".claude/skills/scripts-infra/validate_artifact_naming.py">

<violation number="1" location=".claude/skills/scripts-infra/validate_artifact_naming.py:20">
P1: `VALIDATED_TOP_DIRS = {"."}` can never match: `Path.relative_to()` never yields `"."` as a path component, so `return top_dir in VALIDATED_TOP_DIRS` is always `False` for files in subdirectories. Any artifact in a non-skipped subdirectory of `.reports/` will be silently excluded from validation.

If the intent is to validate all non-skipped subdirectories, the final return should be `return True`. If only root-level files should be validated, the `VALIDATED_TOP_DIRS` constant and final `return` are dead code and should be removed for clarity.</violation>
</file>

<file name="README.md">

<violation number="1" location="README.md:3">
P3: Typo: "Portifolio" → "Portfolio" (the extra 'i' is not correct in Portuguese or English). Note the same word is spelled differently later in the file ("portfolio").</violation>

<violation number="2" location="README.md:3">
P2: Project count mismatch: the text says "33 projetos" but only 32 are listed in the table. Either a project is missing from the table or the count should be 32.</violation>
</file>

<file name=".github/workflows/ci.yml">

<violation number="1" location=".github/workflows/ci.yml:28">
P2: Third-party action `snok/install-poetry` should be pinned to a full commit SHA instead of a mutable version tag (`v1`) to prevent supply chain attacks. Pin to the specific commit hash for the version you intend to use (e.g., `snok/install-poetry@76e04a911780d5b312d89783f7b1cd627778900a`).</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

ARTIFACT_PATTERN = re.compile(r"^[a-z][-a-z0-9]*--[a-z]+--[a-z][-a-z0-9]*\.[a-z]+$")
VALIDATED_TOP_DIRS = {"reports", "baselines"}
SKIPPED_TOP_DIRS = {"evidence", "plans", "drafts"}
VALIDATED_TOP_DIRS = {"."}
Copy link

@cubic-dev-ai cubic-dev-ai bot Feb 20, 2026

Choose a reason for hiding this comment

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

P1: VALIDATED_TOP_DIRS = {"."} can never match: Path.relative_to() never yields "." as a path component, so return top_dir in VALIDATED_TOP_DIRS is always False for files in subdirectories. Any artifact in a non-skipped subdirectory of .reports/ will be silently excluded from validation.

If the intent is to validate all non-skipped subdirectories, the final return should be return True. If only root-level files should be validated, the VALIDATED_TOP_DIRS constant and final return are dead code and should be removed for clarity.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .claude/skills/scripts-infra/validate_artifact_naming.py, line 20:

<comment>`VALIDATED_TOP_DIRS = {"."}` can never match: `Path.relative_to()` never yields `"."` as a path component, so `return top_dir in VALIDATED_TOP_DIRS` is always `False` for files in subdirectories. Any artifact in a non-skipped subdirectory of `.reports/` will be silently excluded from validation.

If the intent is to validate all non-skipped subdirectories, the final return should be `return True`. If only root-level files should be validated, the `VALIDATED_TOP_DIRS` constant and final `return` are dead code and should be removed for clarity.</comment>

<file context>
@@ -17,8 +17,8 @@
 ARTIFACT_PATTERN = re.compile(r"^[a-z][-a-z0-9]*--[a-z]+--[a-z][-a-z0-9]*\.[a-z]+$")
-VALIDATED_TOP_DIRS = {"reports", "baselines"}
-SKIPPED_TOP_DIRS = {"evidence", "plans", "drafts"}
+VALIDATED_TOP_DIRS = {"."}
+SKIPPED_TOP_DIRS = {"evidence", "plans", "drafts", "validation", "dependencies"}
 SKIPPED_FILES = {".gitkeep"}
</file context>
Fix with Cubic

FLEXT is released under the MIT License. See [LICENSE](LICENSE) for details.
# FLEXT

Portifolio de 33 projetos de integracao de dados, revisados individualmente para orientar decisao tecnica e operacao.
Copy link

@cubic-dev-ai cubic-dev-ai bot Feb 20, 2026

Choose a reason for hiding this comment

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

P2: Project count mismatch: the text says "33 projetos" but only 32 are listed in the table. Either a project is missing from the table or the count should be 32.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At README.md, line 3:

<comment>Project count mismatch: the text says "33 projetos" but only 32 are listed in the table. Either a project is missing from the table or the count should be 32.</comment>

<file context>
@@ -1,190 +1,61 @@
-FLEXT is released under the MIT License. See [LICENSE](LICENSE) for details.
+# FLEXT
+
+Portifolio de 33 projetos de integracao de dados, revisados individualmente para orientar decisao tecnica e operacao.
+
+## O que o repositorio consolida
</file context>
Suggested change
Portifolio de 33 projetos de integracao de dados, revisados individualmente para orientar decisao tecnica e operacao.
Portfolio de 32 projetos de integracao de dados, revisados individualmente para orientar decisao tecnica e operacao.
Fix with Cubic

python-version: "3.13"

- name: Install Poetry
uses: snok/install-poetry@v1
Copy link

@cubic-dev-ai cubic-dev-ai bot Feb 20, 2026

Choose a reason for hiding this comment

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

P2: Third-party action snok/install-poetry should be pinned to a full commit SHA instead of a mutable version tag (v1) to prevent supply chain attacks. Pin to the specific commit hash for the version you intend to use (e.g., snok/install-poetry@76e04a911780d5b312d89783f7b1cd627778900a).

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/ci.yml, line 28:

<comment>Third-party action `snok/install-poetry` should be pinned to a full commit SHA instead of a mutable version tag (`v1`) to prevent supply chain attacks. Pin to the specific commit hash for the version you intend to use (e.g., `snok/install-poetry@76e04a911780d5b312d89783f7b1cd627778900a`).</comment>

<file context>
@@ -0,0 +1,43 @@
+          python-version: "3.13"
+
+      - name: Install Poetry
+        uses: snok/install-poetry@v1
+        with:
+          virtualenvs-create: false
</file context>
Fix with Cubic

FLEXT is released under the MIT License. See [LICENSE](LICENSE) for details.
# FLEXT

Portifolio de 33 projetos de integracao de dados, revisados individualmente para orientar decisao tecnica e operacao.
Copy link

@cubic-dev-ai cubic-dev-ai bot Feb 20, 2026

Choose a reason for hiding this comment

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

P3: Typo: "Portifolio" → "Portfolio" (the extra 'i' is not correct in Portuguese or English). Note the same word is spelled differently later in the file ("portfolio").

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At README.md, line 3:

<comment>Typo: "Portifolio" → "Portfolio" (the extra 'i' is not correct in Portuguese or English). Note the same word is spelled differently later in the file ("portfolio").</comment>

<file context>
@@ -1,190 +1,61 @@
-FLEXT is released under the MIT License. See [LICENSE](LICENSE) for details.
+# FLEXT
+
+Portifolio de 33 projetos de integracao de dados, revisados individualmente para orientar decisao tecnica e operacao.
+
+## O que o repositorio consolida
</file context>
Fix with Cubic

@marlon-costa-dc marlon-costa-dc merged commit 54d5e88 into main Feb 20, 2026
2 checks passed
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