Features & roadmap — pinky-tools
Update date : 2026-05-31 12:10
MVP — status: stable / planned
| Command | Status | Notes |
|---|---|---|
pinky run |
planned | Migrate from legacy scripts/run_local_runner.py as-is |
pinky readme |
planned | Migrate lib_ast_parser.py + run_generate_readme.py |
pinky regression |
planned | Migrate run_regression.py as-is, no employer-specific logic to remove |
pinky validate-name |
planned | New — pure Python, no Snowflake dep |
pinky run
pinky run resources/procedure/my_sp.py
pinky run resources/procedure/my_sp.py --connection MY_CONNECTION
Use connections.toml default or --connection flag. No hardcoded defaults.
pinky readme
pinky readme
pinky readme --project-dir ../my-repo --force
pinky regression
pinky regression out_v1.csv out_v2.csv
pinky regression report_v1.xlsx report_v2.xlsx --sheet ALL
pinky validate-name
pinky validate-name "financial__workday_to_datawarehouse__compensation"
# → schema: FINANCIAL__WORKDAY_TO_DATAWAREHOUSE__COMPENSATION
# → dag: FINANCIAL__WORKDAY_TO_DATAWAREHOUSE__COMPENSATION__DAG
# → tags: domain=financial, source=workday, target=datawarehouse
Format: {DOMAIN}__{SOURCE}_TO_{TARGET}__{SUBJECT} / _REPORT / _ANALYTIC / _ADMIN__APP__.
Post-MVP — ordered by priority
pinky new-app <name>
pinky new-app financial__workday_to_datawarehouse__compensation
pinky new-app cse_crm__sirene --with-app
Generates a full repo structure from templates: resources/ tree, manifest.yml,
pyproject.toml, pre-commit config. Runs validate-name before generating.
--with-app adds a SiS app stub from pinky-streamlit demo as canonical source.
pinky generate-udf <module>:<function>
pinky generate-udf pinky_core.xml:xml_path # → inline DDL
pinky generate-udf pinky_core.validate:validate_siret # → staged DDL
Introspects the function signature → generates CREATE OR REPLACE FUNCTION DDL.
Two modes auto-detected from deps: inline (zero external dep) or staged (PyPI deps).
Replaces hand-maintained .sql.j2 templates.
pinky generate-semantic <table>
pinky generate-semantic MY_TABLE
Introspects INFORMATION_SCHEMA.COLUMNS → writes resources/semantic_view/<table>_semantic.yml.
Auto-classifies: NUMBER/FLOAT → FACTS; VARCHAR/BOOLEAN/DATE → DIMENSIONS;
metadata columns (_LOADED_AT, BUG_REASON, IS_TEST_DATA) → excluded.
pinky errors <table>
pinky errors MY_TABLE
pinky errors MY_TABLE --hard
pinky errors MY_TABLE --dmf-only
pinky errors MY_TABLE --since 24h --fix
No Cortex. Unifies 4 error layers: CHECK CONSTRAINT rejects, soft BUG_REASON,
DMF PASS/FAIL, functional error codes.
pinky export
pinky export --env SANDBOX --resource procedure
pinky export --env SANDBOX
Reads live Snowflake objects → writes .yml files for pinky-provider.
Bootstrap path for teams migrating from handcrafted SQL setup scripts.
Backlog
- Migration modules (Airflow → pinky, dbt → pinky) —
pinky-toolsgenerates,pinky-providerdeploys. Seepinky-providerdocs for the mapping tables. pinky capture-versions— captures active Snowpark runtime version tosnowpark_versions.txt. Low priority until CI pipeline is established.gripdev dep — local GitHub-flavored Markdown preview. Add topyproject.tomldev extras.
Out of scope
run_leanix_sync.py— enterprise-specific, not migrated