Webページの移動やフォーム入力、クリックをエージェントに任せ、情報抽出や画面保存、操作前後の比較まで行います。ブラウザ作業の自動化やWebアプリの確認に使えるスキル。
- フォーム入力やクリックを自動化したいとき
- Webページのテキスト抽出
- ページのスクリーンショット・PDF保存
プロジェクトを調べ、Riptideでタスク用の作業環境を作る設定を提案・生成します。複数リポジトリや初期設定、コピー対象を整理し、承認後に保存します。
Propose and generate workspace configuration files (.humanlayer/workspace.json and .humanlayer/workspace.local.json) for a repository
実行スコア 未検証
インストール方法を見るRiptideでタスクごとの作業環境を作るための設定を、プロジェクトの内容に合わせて提案します。Git worktreeは、同じリポジトリから別の作業ディレクトリを用意する仕組みです。作成先、元にするブランチ、初期設定コマンド、コピーするファイルを整理し、承認後に設定ファイルを書き込みます。
単一リポジトリの作業準備をそろえたい場合や、APIと画面など関連する複数リポジトリをまとめて扱う場合に向いています。チーム共通の設定と、端末固有の上書き設定も分けられます。
GitリポジトリとRiptideのワークスペース機能を前提とします。設定はWorkspace: Nowでの作成に使われます。共通設定は.humanlayer/workspace.json、端末固有の設定は.humanlayer/workspace.local.jsonに保存し、後者はGitの管理対象から除外します。
この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
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, gitignoredUse plain, brief language. State each point as one human speaking to another.
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.
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>Infer a complete proposal from project files and common defaults.
{ "localPath": ".", "primary": true }.~/.humanlayer/workspaces/{{ TASKSLUG }}/{{ REPOBASENAME }} as the default path template.origin/main as the default source ref, or whatever default remote the user prefers (e.g. upstream/main - if there are multiple remotes, ask).env, .env.local, .env.development.local, .claude/settings.local.json, and .humanlayer/workspace.local.json..humanlayer/workspace.local.json.For multi-repository workspaces:
CLAUDE.md/AGENTS.md) are loaded from all repos in the workspace..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>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:
"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{{ TASKSLUG }} and {{ REPOBASENAME }} onlycopyGlobs is additive with de-duplication (defaults → workspace.json → workspace.local.json → per-repo), never replacedsourceRef, setupCommand, copyGlobs, and primary — branchTemplate is always root-level$patch: "delete" is supported only in workspace.local.json repos entries, not in workspace.jsondisabled: true at root level disables all workspace setup optionsValidate the generated config:
Bash(git remote -v)
For each repo localPath:
Bash(ls -la <localPath>)Bash(git -C <localPath> rev-parse --git-dir)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.
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>
Give a short 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>
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)Effective config = defaults → workspace.json → workspace.local.json
For repos[]:
localPath merges into that repo (local fields win)localPath adds a new repo$patch: "delete" removes the repo from effective configcopyGlobs 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.
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.
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: 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).
まだレビューはありません。使ってみた感想をお寄せください。
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
Webページの移動やフォーム入力、クリックをエージェントに任せ、情報抽出や画面保存、操作前後の比較まで行います。ブラウザ作業の自動化やWebアプリの確認に使えるスキル。
曖昧で読みにくい英文を、語の意味をそろえた短い能動態の文へ書き直すスキル。指示文やツール説明を見直し、修正理由と変更前後を表で確認できます。
GitHubのPRの状態、レビューの会話、CI失敗のログを専用スクリプトで収集し、変更の確認状況や未解決の指摘、失敗したジョブとステップを調べるスキル。
リリース時に対象パッケージの基準バージョンを更新し、関連ファイルの同期と生成結果を検証して、コミットからPRブランチへのプッシュまで進めるスキル。
Git のコミット間や作業中のコードで、関数の呼び出し構造の違いを確認します。呼び出しツリーの表示や、指定した関数へ至る経路の調査にも使えます。
ターミナルからブラウザのクリックや入力、ページ移動を自動化し、通信やエラー、表示速度も調べられる、Chrome DevToolsのCLI操作を支援するスキル。