Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/npm-release-ops.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
name: Release

# Release strategy and pre-actions:
# - docs/release.md
# Release probe and publication verification guidance:
# - docs/real-repo-validation.md

on:
push:
workflow_dispatch:
Comment on lines 8 to 10
Expand Down
44 changes: 11 additions & 33 deletions .rabbit/context.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ version: udx.dev/dev.kit/v1
generator:
tool: dev.kit
repo: https://github.com/udx/dev.kit
version: 0.14.0
generated_at: 2026-07-05T18:19:05Z
version: 0.20.0
generated_at: 2026-07-08T15:15:15Z
sources:
homepage: https://udx.dev/kit
repository: https://github.com/udx/dev.kit
Expand All @@ -27,13 +27,14 @@ refs:
- ./changes.md
- ./Makefile
- ./docs/real-repo-validation.md
- ./docs/release.md
- ./src/configs/archetypes.yaml
- ./src/configs/audit-rules.yaml
- ./src/configs/context-config.yaml
- ./src/configs/detection-patterns.yaml
- ./src/configs/detection-signals.yaml
- ./src/configs/repo-validation.yaml
- ./deploy.yml
- ./env-interface.yaml
- ./.github/workflows
- ./docs

Expand All @@ -60,13 +61,6 @@ dependencies:
used_by:
- .github/workflows/context7-ops.yml
- .github/workflows/npm-release-ops.yml
- repo: udx/worker
kind: manifest contract (deploy)
resolved: true
declared_as: udx.io/worker-v1/deploy
archetype: manifest-repo
used_by:
- deploy.yml

# Manifests — YAML files that define repo-specific workflow, deploy, or contract behavior.
# Note: Include custom config/manifests that materially shape repo behavior or contract understanding.
Comment thread
fqjony marked this conversation as resolved.
Expand Down Expand Up @@ -143,28 +137,12 @@ manifests:
- path reference: docs/real-repo-validation.md
- path reference: lib/modules/config_catalog.sh
- path reference: tests/real-repos.sh
- path: deploy.yml
kind: workerDeployConfig
declared_as: udx.io/worker-v1/deploy
source_repo: udx/worker
- path: env-interface.yaml
kind: devKitEnvInterface
description: Environment variables that control dev.kit installation, command behavior, and test probes.
declared_as: udx.dev/dev.kit-v1/config
used_by:
- Makefile
- docs/context-contract.md
- docs/references/command-surfaces.md
- docs/references/config-contract-surfaces.md
- docs/repo-contract-boundary.md
- lib/modules/repo_factors.sh
- src/configs/context-config.yaml
- src/configs/detection-signals.yaml
- tests/suite.sh
- changes.md
evidence:
- version: udx.io/worker-v1/deploy
- path reference: Makefile
- path reference: docs/context-contract.md
- path reference: docs/references/command-surfaces.md
- path reference: docs/references/config-contract-surfaces.md
- path reference: docs/repo-contract-boundary.md
- path reference: lib/modules/repo_factors.sh
- path reference: src/configs/context-config.yaml
- path reference: src/configs/detection-signals.yaml
- path reference: tests/suite.sh
- version: udx.dev/dev.kit-v1/config
- path reference: changes.md
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ _Normalized repo-owned guidance for agents. Keep it aligned with `docs/reference

## Workflow

- read: `README.md`, `changes.md`, `deploy.yml`, `.github/workflows/`, `docs/`
- read: `README.md`, `changes.md`, `.github/workflows/`, `docs/`
- verify: `make test`

## Notes
Expand Down
9 changes: 4 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,14 @@ test:
test-real:
bash tests/real-repos.sh

# Run tests inside the worker container via deploy.yml
# Requires @udx/worker-deployment: npm install -g @udx/worker-deployment
# Run tests inside the worker container without the deprecated worker-deployment manifest.
test-docker:
worker run
docker run --rm -v "$(CURDIR):/workspace" -w /workspace $(WORKER_IMAGE) bash tests/suite.sh

# Interactive shell inside the worker container for debugging
test-shell:
worker run run-it
docker run --rm -it -v "$(CURDIR):/workspace" -w /workspace $(WORKER_IMAGE) bash

# Pull the worker image explicitly
test-docker-pull:
docker pull $(WORKER_IMAGE)
docker pull $(WORKER_IMAGE)
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,7 @@ All commands support `--json`.
- [Environment Config](docs/environment-config.md)
- [Context Coverage](docs/context-coverage.md)
- [Integration](docs/integration.md)
- [Release](docs/release.md)
- [Real Repo Validation](docs/real-repo-validation.md)
- [Smart Dependency Detection](docs/smart-dependency-detection.md)
- [Reference Docs](docs/references/README.md)
Expand Down
7 changes: 7 additions & 0 deletions changes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Changes

### 0.20.0

- Discover root YAML config contracts from explicit top-level `contract` / `contracts` metadata or typed `kind` + `version` manifests instead of filename-specific allowlists.
- Remove the deprecated worker-deployment `deploy.yml` surface and keep manifest discovery/dependency tracing covered by arbitrary typed root YAML such as `work-conf.yaml`.
- Add an explicit `env-interface.yaml` for dev.kit's own environment contract so config coverage comes from a repo-owned interface declaration.
- Document release strategy and pre-actions so PRs check the published version first, reserve the next version, update `changes.md`, regenerate context, and validate before merge.

### 0.14.0

- Ignore command examples from `docs/references/` when generating repo command contracts, preventing reference docs from creating misleading `build` or `run` commands.
Expand Down
13 changes: 0 additions & 13 deletions deploy.yml

This file was deleted.

2 changes: 1 addition & 1 deletion docs/context-contract.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ The generated contract is `.rabbit/context.yaml`.
- `AGENTS.md`, `CLAUDE.md`, and similar repo-owned instruction files
- `README.md`, `changes.md`, and focused docs
- `.github/workflows/`
- manifests such as `deploy.yml`, package manifests, Docker files, and structured YAML configs
- manifests such as typed YAML configs, package manifests, Docker files, and workflow contracts
- scripts, Makefiles, tests, and checked-in examples that define runnable behavior

Live services such as GitHub issues, PRs, reviews, and workflow runs can help a current task, but they should not become durable repo truth inside `.rabbit/context.yaml`.
Expand Down
4 changes: 2 additions & 2 deletions docs/references/command-surfaces.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Workflow and operational contracts are often packaged in:
- `.github/workflows/*.yml` when the workflow expresses repo-specific execution contracts
- reusable workflow refs
- Docker build and runtime files
- deploy manifests such as `deploy.yml`
- typed runtime manifests and workflow files
- repo docs that explain how those assets fit together

Docs should explain execution behavior, tradeoffs, and decision points. The runnable contract should stay in scripts and manifests.
Expand Down Expand Up @@ -80,7 +80,7 @@ A repo may expose its main flow through a mix like:

- `Makefile` for `make test`, `make build`, `make run`
- `.github/workflows/` for CI/CD execution
- `deploy.yml` for deploy contract details
- typed runtime manifests or workflow files for deploy contract details
- `docs/` for operator-facing explanation

That is valid as long as the repo makes those surfaces clear and traceable.
2 changes: 1 addition & 1 deletion docs/references/config-contract-surfaces.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Configuration is often declared through:

- `.env.example`, `.env.sample`, or `.env.template`
- focused repo docs such as `README.md` or `docs/config.md`
- deploy manifests such as `deploy.yml`
- typed YAML manifests with explicit config metadata
- versioned YAML/JSON manifests with explicit config metadata or runtime config sections
- checked-in example config files when the repo uses a custom format

Expand Down
35 changes: 35 additions & 0 deletions docs/release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Release

This repo releases `@udx/dev-kit` through the release workflow on the release
branch. Release-bound PRs should make the intended package version, changelog,
generated context, and validation evidence explicit before merge.

## Pre-Actions

Before opening or updating a release-bound PR:

- Check the currently published version through GitHub releases and npm.
- If the current `package.json` version is already published, bump to the next
intended version in `package.json` and `package-lock.json`.
- Add pending user-facing changes under that new version in `changes.md`; keep
already published versions as historical records.
- Run `dev.kit repo` after repo contract or release metadata changes so
`.rabbit/context.yaml` records the current generator version.
- Run the focused fixture check first, then `make test`, before asking for
review or merge.

## Strategy

- Treat `changes.md` as the release intent. Published versions are immutable
history; new work goes under the next intended version.
- Use the next minor version for ordinary `0.x` feature releases. A `0.x`
minor may change generated context or detection behavior.
- Reserve milestone jumps, such as `0.20.0`, for intentional contract shifts:
removing deprecated surfaces, changing manifest/interface strategy, or
making output changes that users should notice before upgrading.
- Keep release mechanics in GitHub Actions and package metadata, not in
generated context.
- Use `docs/real-repo-validation.md` for optional local probe strategy and
post-release verification evidence.
- Verify GitHub release evidence and npm registry evidence separately before
reporting a release as published.
2 changes: 1 addition & 1 deletion docs/repo-contract-boundary.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Use **scripts and manifests** for programmatic execution:

- `Makefile`, `package.json`, and shell scripts
- `.github/workflows/*.yml`
- deploy manifests such as `deploy.yml`
- typed YAML manifests and workflow contracts
- checked-in config examples when they are part of the runnable contract

Use **structured refs** for deterministic parsing:
Expand Down
2 changes: 1 addition & 1 deletion docs/smart-dependency-detection.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ If `dev.kit` can resolve a dependency confidently, it records:
Example:

```yaml
version: udx.io/worker-v1/deploy
version: example.dev/runtime-v1/config
```

That kind of versioned manifest header can be normalized into a dependency repo contract when the repo evidence is strong enough.
Expand Down
34 changes: 34 additions & 0 deletions env-interface.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
# dev.kit CLI environment interface.
# References:
# - docs/environment-config.md
# - bin/scripts/install.sh
# - lib/modules/local_env.sh
kind: devKitEnvInterface
version: udx.dev/dev.kit-v1/config
description: Environment variables that control dev.kit installation, command behavior, and test probes.

config:
env:
DEV_KIT_HOME:
description: dev.kit home directory for curl-managed installs and local config.
required: false
DEV_KIT_BIN_DIR:
description: Directory where dev.kit command shims are installed.
required: false
DEV_KIT_INSTALL_REPO:
description: GitHub repository used by the curl installer.
required: false
DEV_KIT_INSTALL_REF:
description: Branch or ref used by the curl installer.
required: false
DEV_KIT_REPO_SOFT_TIMEOUT:
description: Seconds before repo generation reports a slow-operation notice.
required: false
DEV_KIT_REPO_HARD_TIMEOUT:
description: Seconds before repo generation stops a guarded operation.
required: false
DEV_KIT_SPINNER_DISABLE:
description: Disable spinner output for tests and non-interactive runs.
required: false
secrets: {}
5 changes: 2 additions & 3 deletions lib/modules/local_env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ dev_kit_env_tool_state() {
# Compute tool detection lines. Recomputed on each run.
_dev_kit_env_compute_tool_lines() {
local tool=""
for tool in git gh npm docker yq jq aws gcloud az "@udx/worker-deployment" "@udx/mcurl"; do
for tool in git gh npm docker yq jq aws gcloud az "@udx/mcurl"; do
printf '%s|%s|%s\n' "$tool" "$(dev_kit_env_tool_category "$tool")" "$(dev_kit_env_tool_state "$tool")"
done
}
Expand Down Expand Up @@ -241,7 +241,7 @@ dev_kit_env_tool_presence_state() {

_dev_kit_env_compute_tool_presence_lines() {
local tool=""
for tool in git gh npm docker yq jq aws gcloud az "@udx/worker-deployment" "@udx/mcurl"; do
for tool in git gh npm docker yq jq aws gcloud az "@udx/mcurl"; do
printf '%s|%s|%s\n' "$tool" "$(dev_kit_env_tool_category "$tool")" "$(dev_kit_env_tool_presence_state "$tool")"
done
}
Expand Down Expand Up @@ -327,7 +327,6 @@ dev_kit_env_tool_enables() {
aws) printf 'AWS cloud operations' ;;
gcloud) printf 'Google Cloud operations' ;;
az) printf 'Azure cloud operations' ;;
"@udx/worker-deployment") printf 'UDX deployment workflows' ;;
"@udx/mcurl") printf 'web fetches for agents' ;;
*) printf 'general tooling' ;;
esac
Expand Down
14 changes: 2 additions & 12 deletions lib/modules/repo_factors.sh
Original file line number Diff line number Diff line change
Expand Up @@ -662,7 +662,7 @@ dev_kit_repo_factor_repair_target() {
printf '%s' "$first_workflow"
return 0
fi
printf '%s' "deploy.yml or .github/workflows/"
printf '%s' ".github/workflows/ or dependency manifest"
return 0
;;
dependencies:missing)
Expand All @@ -671,7 +671,7 @@ dev_kit_repo_factor_repair_target() {
printf '%s' "$first_workflow"
return 0
fi
printf '%s' "deploy.yml or .github/workflows/"
printf '%s' ".github/workflows/ or dependency manifest"
return 0
;;
config:partial)
Expand Down Expand Up @@ -775,11 +775,6 @@ dev_kit_repo_dependency_reference_local() {
return 0
fi

if dev_kit_has_file "$repo_dir" "deploy.yml"; then
printf '%s' "deploy.yml"
return 0
fi

dev_kit_repo_reference_doc_default "$repo_dir"
}

Expand Down Expand Up @@ -825,11 +820,6 @@ dev_kit_repo_pipeline_reference_local() {
return 0
fi

if dev_kit_has_file "$repo_dir" "deploy.yml"; then
printf '%s' "deploy.yml"
return 0
fi

dev_kit_repo_reference_doc_default "$repo_dir"
}

Expand Down
Loading