본문으로 건너뛰기
cccskills
무료GitHub에 공개

configure-workspaces

Prepare Riptide workspace settings by inspecting a project and proposing configuration files. Define Git worktrees, separate working directories for tasks, along with setup commands, copied files, and shared or machine-specific settings, then save approved configurations.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

Propose and generate workspace configuration files (.humanlayer/workspace.json and .humanlayer/workspace.local.json) for a repository

실행 점수 미검증

설치 방법 보기

이럴 때 유용합니다

  • Configure a task workspace for a single repository
  • Coordinate workspaces across related repositories
  • Separate shared settings from machine-specific overrides
  • Define setup commands and files to copy

포함된 파일(1)

  • SKILL.md10.2 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Purpose

This skill reads the project, proposes a concise workspace configuration, writes the approved files, and validates them.

The workspace config files control how worktrees are created when tasks use workspaceTiming = now in the Riptide task creation UI:

  • .humanlayer/workspace.json — shared team configuration, safe to commit
  • .humanlayer/workspace.local.json — machine-specific overrides, gitignored

Use plain, brief language. State each point as one human speaking to another.

Steps to follow

<step index=0>

Step 0: Select the repository

Check the current directory and home directory:

Bash(pwd)
Bash(printf '%s\n' "$HOME")
Bash(git rev-parse --show-toplevel)

If git rev-parse succeeds, use that repository root as the working directory. State the path in one short sentence.

If the current directory is the home directory and it is not inside a Git repository, ask one question:

Which repository should I configure? Send its path.

Use the same question when the current directory is not a Git repository. After the user gives a path, confirm it with git -C <path> rev-parse --show-toplevel and use the returned root.

</step> <step index=1>

Step 1: Read the project

Read any existing workspace config files:

Read(.humanlayer/workspace.json)
Read(.humanlayer/workspace.local.json)

Run all file reads and commands from the selected repository root.

Check for coordination-repo signals (Claude config, additional sibling repos):

Read(.claude/settings.json)
Bash(ls -la ../)
Read(package.json)
Read(Makefile)
Read(README.md)
Bash(git remote -v)

Use an existing workspace config as the starting point. Infer changes from the repository and the user's request.

</step> <step index=2>

Step 2: Build the proposal

Infer a complete proposal from project files and common defaults.

  • Use a single-repository config unless the project clearly coordinates related sibling repositories.
  • For one repository, use { "localPath": ".", "primary": true }.
  • For multiple repositories, include the related paths and mark exactly one primary repository.
  • Prefer the repository with the team's central Claude settings, MCP config, or agent policy as primary.
  • Use ~/.humanlayer/workspaces/{{ TASKSLUG }}/{{ REPOBASENAME }} as the default path template.
  • Use origin/main as the default source ref, or whatever default remote the user prefers (e.g. upstream/main - if there are multiple remotes, ask)
  • Infer a setup command from project scripts, package manager files, the Makefile, and the README.
  • Include local files that exist and are useful in a worktree, such as .env, .env.local, .env.development.local, .claude/settings.local.json, and .humanlayer/workspace.local.json.
  • Put machine-specific values in .humanlayer/workspace.local.json.

For multi-repository workspaces:

  • Sessions in the workspace launch in the primary repo's worktree by default.
  • Skills and instruction files (CLAUDE.md/AGENTS.md) are loaded from all repos in the workspace.
  • Repo-local .claude/settings*.json / MCP-style configuration only governs sessions launched from a repo — so the repo holding the team's central Claude settings, MCP config, or agent policy should usually be primary.

The first response after project inspection must show the proposed .humanlayer/workspace.json as a fenced json block. If local overrides are useful, show .humanlayer/workspace.local.json in a second fenced json block. End with one short line:

Tell me what to change, or approve this config.

When the user gives feedback, update and print the complete proposed JSON again.

</step> <step index=3>

Step 3: Validate the proposal

Validate the proposed config before asking for approval.

For single-repo projects, workspace.json looks like:

{
  "disabled": false,
  "pathTemplate": "~/.humanlayer/workspaces/{{ TASKSLUG }}/{{ REPOBASENAME }}",
  "branchTemplate": "{{ TASKSLUG }}",
  "sourceRef": "origin/main",
  "setupCommand": "",
  "copyGlobs": [
    ".env",
    ".env.local",
    ".env.development.local",
    ".claude/settings.local.json",
    ".humanlayer/workspace.local.json"
  ],
  "repos": [
    {
      "localPath": ".",
      "description": "Selected repository",
      "primary": true
    }
  ]
}

For multi-repo projects (coordination repos), workspace.json looks like:

{
  "disabled": false,
  "pathTemplate": "~/.humanlayer/workspaces/{{ TASKSLUG }}/{{ REPOBASENAME }}",
  "branchTemplate": "{{ TASKSLUG }}",
  "sourceRef": "origin/main",
  "setupCommand": "bun install",
  "copyGlobs": [
    ".env",
    ".env.local",
    ".humanlayer/workspace.local.json"
  ],
  "repos": [
    {
      "localPath": ".",
      "description": "Coordination repo",
      "primary": true
    },
    {
      "localPath": "../api",
      "description": "API service",
      "setupCommand": "bun install"
    },
    {
      "localPath": "../web",
      "description": "Web frontend",
      "sourceRef": "origin/main"
    }
  ]
}

Config rules to follow:

  • Multi-repo configs should mark exactly one repo with "primary": true — sessions launch in the primary repo's worktree by default, and its repo-local Claude/MCP configuration governs sessions. If no repo is marked, the task form asks the user to pick one.
  • localPath: "." refers to the selected repository itself (the one containing this config); other entries are sibling paths relative to it
  • Template variables are {{ TASKSLUG }} and {{ REPOBASENAME }} only
  • copyGlobs is additive with de-duplication (defaults → workspace.json → workspace.local.json → per-repo), never replaced
  • Repo entries may override sourceRef, setupCommand, copyGlobs, and primary — branchTemplate is always root-level
  • $patch: "delete" is supported only in workspace.local.json repos entries, not in workspace.json
  • disabled: true at root level disables all workspace setup options

Validate the generated config:

Bash(git remote -v)

For each repo localPath:

  • Check the directory exists: Bash(ls -la <localPath>)
  • Check it's a git repo: Bash(git -C <localPath> rev-parse --git-dir)
  • If sourceRef has a remote prefix, verify the remote exists: Bash(git -C <localPath> remote -v | grep <prefix>)

If setupCommand is set, state what it does in one sentence. Setup commands run after worktree creation.

</step> <step index=4>

Step 4: Write the approved config

After approval, write the proposed config.

Write workspace.json:

Write(.humanlayer/workspace.json, <content>)

If there are local overrides, write workspace.local.json and ensure it is gitignored:

Write(.humanlayer/workspace.local.json, <content>)

Check .gitignore for the workspace.local.json entry:

Read(.gitignore)

Add .humanlayer/workspace.local.json to .gitignore when needed:

Bash(echo '.humanlayer/workspace.local.json' >> .gitignore)
</step> <step index=5>

Step 5: Confirm and summarize

Give a short summary:

  • Files written
  • Number of repos configured
  • Path template that will be used
  • Setup command (if any)
  • Copy globs summary

Explain the next steps:

The workspace configuration is now ready.

You can:
1. Return to the Riptide task creation UI and select "Now" for workspace setup
2. Or use the workspace config modal (Settings icon on the Workspace axis) to review/edit the config

When you create a task with "Workspace: Now", Riptide will:
- Create a git worktree for each configured repo at the rendered path
- Copy the configured files into each worktree
- Run the setup command in each worktree
- Start the task in the primary repo's worktree

If the user is on a team, remind them to commit workspace.json (but not workspace.local.json):

Bash(git add .humanlayer/workspace.json)
Bash(git status)
</step>

Key concepts for this skill

Template variables

Only two template variables are supported in v1:

  • {{ TASKSLUG }} — the task slug (e.g. eng-123-small-fix)
  • {{ REPOBASENAME }} — the basename of each repo's resolved localPath (e.g. humanlayer, api, web)

Repo precedence rules

Effective config = defaults → workspace.json → workspace.local.json

For repos[]:

  • Local entry with matching localPath merges into that repo (local fields win)
  • Local entry with new localPath adds a new repo
  • Local entry with $patch: "delete" removes the repo from effective config

copyGlobs semantics

copyGlobs at every level uses additive merge with de-duplication, never replacement. The effective list is built by concatenating defaults → workspace.json → workspace.local.json (and, per repo, the root list → the repo's own copyGlobs), dropping duplicates while preserving order. Setting copyGlobs in a local override or repo entry extends the inherited list — it cannot remove entries from it.

Primary repo

In a multi-repo workspace, exactly one repo should carry "primary": true. The primary repo is the default launch directory for sessions in tasks created from this workspace: skills and instruction files load from all repos, but repo-local .claude/settings*.json / MCP configuration follows the launch directory, so the repo holding the team's central agent configuration should be primary. The task creation UI lets users override the primary per task, and prompts for a choice when a multi-repo config marks none. Single-repo configs are implicitly primary.

Coordination repos

A coordination repo is a directory that doesn't contain the main project code but instead contains task management files (.humanlayer/, tickets, plans) and references sibling repos through ../api, ../web, etc. localPath: "." simply refers to the selected repository itself; mark whichever repo should be the default launch/config repo with "primary": true.

disabled field

disabled: true at root level prevents workspace setup options that require worktree creation. The Riptide UI shows the source file that contributed disabled: true so users know which file to edit (or can re-enable in local overrides without touching shared config).

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Automate website navigation, form entry, and clicks through a browser command line tool. Extract page text, capture screenshots, and compare page states to check interactions or test web app behavior across screen sizes.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Automate form entry and button clicks
  • Extract text from web pages
  • Save page screenshots and PDFs
humanlayer/humanlayer1.2만2026년 10월 23일 업데이트

Rewrite dense or ambiguous English into short, direct sentences using principles from ASD-STE100, a standard for clear technical English. It preserves facts and conditions, identifies writing issues, and shows the original and revised text side by side.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Clarifying English instructions for another agent
  • Simplifying English tool descriptions and error messages
  • Making English easier for non-native readers
humanlayer/humanlayer1.2만2026년 10월 23일 업데이트

Inspect GitHub pull requests, read review conversations, and investigate failed automated checks with dedicated scripts. Get consolidated status reports, unresolved discussion threads, and failing job or step logs, with full logs saved for further inspection.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Checking pull request status in one report
  • Reading unresolved review conversations
  • Investigating failed CI jobs and steps
humanlayer/humanlayer1.2만2026년 10월 23일 업데이트

Update release base versions for supported packages, keep matching version fields in sync, and verify generated versions. The workflow covers committing and pushing the changes, with guidance for release steps after merging.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Prepare a package version update for release
  • Synchronize version fields across related files
  • Verify generated versions before pushing
humanlayer/humanlayer1.2만2026년 10월 23일 업데이트

calldiff

무료

Compare function call structures across Git commits, branches, or working files to support code review. Display call trees and trace paths from an entry function to a target function, with support for 22 languages.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Compare function calls before and after a change
  • Review call structure changes between branches
  • Trace paths from an entry function to a target
humanlayer/humanlayer1.2만2026년 10월 23일 업데이트

Automate browser tasks from the terminal using the chrome-devtools-mcp CLI. Inspect page elements, click and fill forms, navigate tabs, capture screenshots, and investigate network requests, console messages, performance, and memory through shell commands.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Automating form input and page navigation
  • Capturing page or element screenshots
  • Investigating network requests and console errors
humanlayer/humanlayer1.2만2026년 10월 23일 업데이트

humanlayer의 스킬 모두 보기

이 스킬의 문제 신고