Skip to content

refactor(directory): rename worker iii-directory -> directory#266

Draft
guibeira wants to merge 2 commits into
mainfrom
refactor/rename-iii-directory
Draft

refactor(directory): rename worker iii-directory -> directory#266
guibeira wants to merge 2 commits into
mainfrom
refactor/rename-iii-directory

Conversation

@guibeira

@guibeira guibeira commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

Renames the in-repo worker iii-directory -> directory (Task 1 of the remove-iii-prefix plan). This is a coordinated rename: folder, crate/bin/lib identifiers, worker manifest name:, dependency keys, CI allowlists, release tag pattern, console TS, and docs all change together.

The publish CI enforces that a worker's iii.worker.yaml name: must equal its folder name (validate_worker.py), so folder rename + manifest name: + CI allowlists are coupled and changed in one commit.

Changes

  • git mv iii-directory -> directory
  • directory/Cargo.toml: package/[[bin]]/[lib] name -> directory (the iii-sdk dependency line is untouched)
  • directory/iii.worker.yaml: name: directory, bin: directory
  • Lib identifier iii_directory -> directory across all Rust sources/tests
  • Worker dependency keys: harness/iii.worker.yaml and harness/src/harness/iii.worker.yaml iii-directory -> directory
  • CI: release.yml tag pattern directory/v*, create-tag.yml allowlist, validate_worker.py ALLOWED entry, parse_publish_workers_input.py allowed-set entry
  • Display/string refs in console TS, README, harness docs, shell README, and the worker's own README/SKILL/e2e harness

Verification

  • cargo build in directory/: PASS
  • cargo test --lib: 243 passed, 0 failed
  • cargo test --test bdd -- --tags @pure: compiles + runs clean (no @pure-tagged scenarios exist in feature files; engine-bound scenarios skip without a running engine — unrelated to the rename)
  • validate_worker.py --worker directory --base-ref main --source-changed '["directory"]': exit 0 (name now matches folder)
  • Straggler grep for iii-directory/iii_directory (excluding target/ + node_modules): empty
  • External SDK deps (iii-sdk, iii-state, iii-stream, iii-queue, iii-observability) left byte-identical — confirmed no external-dep lines in the Cargo.toml diff

Notes

  • Worker name must match folder per validate_worker.py.
  • Shared CI files edited (release tag pattern, allowlists); other workers' entries untouched.
  • External SDK deps are out of scope (source lives in the SDK repo) and were not modified.

Summary by CodeRabbit

  • Chores

    • Renamed the iii-directory worker to directory across the codebase, including configuration files, documentation, build metadata, and internal references.
  • Documentation

    • Updated installation guides and worker documentation to reflect the new directory worker naming.

@vercel

vercel Bot commented Jun 15, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
workers Ready Ready Preview, Comment Jun 15, 2026 6:26pm

Request Review

@coderabbitai

coderabbitai Bot commented Jun 15, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Renames the iii-directory worker to directory across the entire repository. This includes the Rust crate identity (Cargo.toml, lib.rs, main.rs), worker manifests (iii.worker.yaml), CI scripts (ALLOWED_WORKERS, BOOTSTRAP_WORKERS), GitHub Actions workflows, harness LLM prompt templates, console web fixtures, and all documentation.

Changes

Worker rename: iii-directory → directory

Layer / File(s) Summary
Rust crate identity and worker registration
directory/Cargo.toml, directory/src/lib.rs, directory/src/main.rs, directory/iii.worker.yaml, directory/config.yaml, directory/skills/SKILL.md, directory/src/functions/mod.rs, directory/src/sources/mod.rs
[package], [[bin]], and [lib] names in Cargo.toml, crate-level doc, CLI command name, WorkerMetadata.name, worker manifest name/bin, config header, and tracing log messages are all updated from iii-directory/iii_directory to directory.
Rust source code, unit tests, and e2e harness
directory/src/functions/skills.rs, directory/src/sources/registry.rs, directory/examples/test_registry.rs, directory/tests/common/..., directory/tests/e2e/..., directory/tests/steps/read.rs
Doc comments, unit test fixture data and filesystem path assertions, crate imports in examples and test helpers, and the e2e runner script binary paths, teardown targets, and config worker name are updated from iii-directory/iii_directory to directory.
CI scripts, workflows, and release triggers
.github/scripts/parse_publish_workers_input.py, .github/scripts/validate_worker.py, .github/workflows/create-tag.yml, .github/workflows/release.yml
ALLOWED_WORKERS whitelist, BOOTSTRAP_WORKERS gate, workflow_dispatch worker option, and the release tag trigger glob pattern are all updated from iii-directory to directory.
Harness manifests, prompts, and tests
harness/iii.worker.yaml, harness/src/harness/iii.worker.yaml, harness/src/turn-orchestrator/prompt/*.ts, harness/tests/turn-orchestrator/system-prompt.test.ts
Dependency keys in both harness manifests, the worker::add registry name in all four LLM prompt templates (anthropic, default, gpt, kimi), and the corresponding system-prompt test assertions are changed from iii-directory to directory.
Console web fixtures and parser tests
console/web/src/components/chat/directory/parsers.ts, console/web/src/components/chat/worker/__tests__/parsers.test.ts, console/web/src/hooks/use-worker-lifecycle.ts, console/web/src/stories/fixtures/...
Header comment wire-source path, worker::list test fixture worker name, hook doc comment, and all Storybook engine/worker fixture data values are updated from iii-directory to directory.
Documentation
README.md, directory/README.md, docs/architecture/*, docs/sops/new-worker.md, harness/README.md, harness/docs/*, shell/README.md
Modules table, install commands, bootstrap worker naming examples, architecture diagrams, SOP instructions, and companion-worker references are updated from iii-directory to directory.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • iii-hq/workers#227: Touches the same harness turn-orchestrator prompt templates (anthropic.ts, default.ts, gpt.ts, kimi.ts) where this PR updates the iii-directorydirectory worker name string.
  • iii-hq/workers#127: Introduces the BOOTSTRAP_WORKERS / skills/SKILL.md gate in .github/scripts/validate_worker.py that this PR updates from iii-directory to directory.
  • iii-hq/workers#245: Modifies the same four LLM prompt sources and system-prompt tests that this PR updates when renaming the directory worker.

Suggested reviewers

  • sergiofilhowz
  • andersonleal

Poem

🐇 A rabbit hops through the code one day,
Erasing the iii- along the way.
directory stands proud, no prefix in sight,
Each YAML and .rs gleaming bright.
From Cargo to prompts, the rename is done—
One cleaner identity, hop hop, we've won! 🎉

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'refactor(directory): rename worker iii-directory -> directory' directly and clearly summarizes the main change: renaming the worker from iii-directory to directory.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/rename-iii-directory

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.

…irectory

# Conflicts:
#	harness/README.md
#	harness/docs/architecture.md
#	harness/iii.worker.yaml
@github-actions

Copy link
Copy Markdown
Contributor

skill-check — worker

0 verified, 19 skipped (no docs/).

Layer Result
structure
vale
ai
render

Four for four. Nicely done.

@guibeira guibeira marked this pull request as ready for review June 15, 2026 20:11
@guibeira guibeira marked this pull request as draft June 15, 2026 20:11

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
directory/tests/e2e/run-tests.sh (1)

15-15: 💤 Low value

Remove the unused HERE variable.

Variable HERE is declared on line 15 but never referenced in the script. All assertions and operations use $ROOT_DIR or other variables directly.

Proposed fix
 HERE="$ROOT_DIR"                                   # assertion body refers to $HERE / $GLOBAL
-HERE="$ROOT_DIR"
 PORT="${PORT:-49134}"

Note: Remove the redundant assignment on line 15, or if HERE was intentionally added for future use, remove the misleading comment on line 15.

🤖 Prompt for 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.

In `@directory/tests/e2e/run-tests.sh` at line 15, The HERE variable is declared
and assigned the value of ROOT_DIR but is never referenced anywhere in the
script, making it redundant code. Remove the assignment of the HERE variable
since all assertions and operations in the script use ROOT_DIR or other
variables directly instead of the HERE alias.
🤖 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 `@directory/src/main.rs`:
- Around line 35-37: The multi-line import statement for download_worker_skills,
reconcile_decision, and InFlightGuard from directory::functions::download is
failing cargo fmt validation. Collapse this import block from its current
multi-line format into a single line by removing the line breaks and moving all
imported items onto one line while keeping the curly brace syntax intact.

---

Nitpick comments:
In `@directory/tests/e2e/run-tests.sh`:
- Line 15: The HERE variable is declared and assigned the value of ROOT_DIR but
is never referenced anywhere in the script, making it redundant code. Remove the
assignment of the HERE variable since all assertions and operations in the
script use ROOT_DIR or other variables directly instead of the HERE alias.
🪄 Autofix (Beta)

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: CHILL

Plan: Pro

Run ID: 43e4f9c4-72a8-44c3-8fc5-b779df40b3ef

📥 Commits

Reviewing files that changed from the base of the PR and between 1ae7497 and e1eb4d7.

⛔ Files ignored due to path filters (1)
  • directory/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (69)
  • .github/scripts/parse_publish_workers_input.py
  • .github/scripts/validate_worker.py
  • .github/workflows/create-tag.yml
  • .github/workflows/release.yml
  • README.md
  • console/web/src/components/chat/directory/parsers.ts
  • console/web/src/components/chat/worker/__tests__/parsers.test.ts
  • console/web/src/hooks/use-worker-lifecycle.ts
  • console/web/src/stories/fixtures/engine-fixtures.ts
  • console/web/src/stories/fixtures/worker-fixtures.ts
  • directory/Cargo.toml
  • directory/README.md
  • directory/build.rs
  • directory/config.yaml
  • directory/examples/test_registry.rs
  • directory/iii.worker.yaml
  • directory/skills/SKILL.md
  • directory/src/config.rs
  • directory/src/fs_source.rs
  • directory/src/functions/download.rs
  • directory/src/functions/engine_fn.rs
  • directory/src/functions/error.rs
  • directory/src/functions/mod.rs
  • directory/src/functions/prompts.rs
  • directory/src/functions/registry.rs
  • directory/src/functions/skills.rs
  • directory/src/lib.rs
  • directory/src/main.rs
  • directory/src/manifest.rs
  • directory/src/sources/git.rs
  • directory/src/sources/mod.rs
  • directory/src/sources/registry.rs
  • directory/src/trigger_types.rs
  • directory/tests/bdd.rs
  • directory/tests/common/engine.rs
  • directory/tests/common/mod.rs
  • directory/tests/common/workers.rs
  • directory/tests/common/world.rs
  • directory/tests/e2e/.gitignore
  • directory/tests/e2e/README.md
  • directory/tests/e2e/config.yaml
  • directory/tests/e2e/reports/.gitkeep
  • directory/tests/e2e/run-tests.sh
  • directory/tests/features/download_registry.feature
  • directory/tests/features/download_repo.feature
  • directory/tests/features/prompts.feature
  • directory/tests/features/read.feature
  • directory/tests/features/registry_worker_info.feature
  • directory/tests/features/registry_worker_list.feature
  • directory/tests/steps/download_registry.rs
  • directory/tests/steps/download_repo.rs
  • directory/tests/steps/mod.rs
  • directory/tests/steps/prompts.rs
  • directory/tests/steps/read.rs
  • directory/tests/steps/registry.rs
  • docs/architecture/skills-and-permissions.md
  • docs/architecture/testing-and-ci.md
  • docs/sops/new-worker.md
  • harness/README.md
  • harness/docs/architecture.md
  • harness/docs/workers/harness.md
  • harness/iii.worker.yaml
  • harness/src/harness/iii.worker.yaml
  • harness/src/turn-orchestrator/prompt/anthropic.ts
  • harness/src/turn-orchestrator/prompt/default.ts
  • harness/src/turn-orchestrator/prompt/gpt.ts
  • harness/src/turn-orchestrator/prompt/kimi.ts
  • harness/tests/turn-orchestrator/system-prompt.test.ts
  • shell/README.md

Comment thread directory/src/main.rs
Comment on lines +35 to 37
use directory::functions::download::{
download_worker_skills, reconcile_decision, InFlightGuard,
};

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Fix cargo fmt --check failure on the import block.

The current multi-line import shape is failing CI formatting checks; collapse it to the formatter-expected single line.

Suggested fix
-use directory::functions::download::{
-    download_worker_skills, reconcile_decision, InFlightGuard,
-};
+use directory::functions::download::{download_worker_skills, reconcile_decision, InFlightGuard};
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
use directory::functions::download::{
download_worker_skills, reconcile_decision, InFlightGuard,
};
use directory::functions::download::{download_worker_skills, reconcile_decision, InFlightGuard};
🤖 Prompt for 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.

In `@directory/src/main.rs` around lines 35 - 37, The multi-line import statement
for download_worker_skills, reconcile_decision, and InFlightGuard from
directory::functions::download is failing cargo fmt validation. Collapse this
import block from its current multi-line format into a single line by removing
the line breaks and moving all imported items onto one line while keeping the
curly brace syntax intact.

Source: Pipeline failures

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