compress skill that needs a timestamped filename, and we will instruct it to use a separate timestamp skill to get that information. ### The Initial compress Skill First, we define our compress skill. Its goal is to take files resulting from a user's request and archive them into a .tar.gz file. The desired filename format includes a timestamp, which we initially define as a placeholder. ~~~markdown --- name: compress description: Compress the resulting files of a user's request allowed-tools: [Write, Bash(tar:*)] --- ## Usage ~~~ With this simple instruction, the agent's behavior changes completely. It now understands the workflow: 1. Run the timestamp skill. 2. Capture the output (the correctly formatted timestamp). 3. Run the compress skill, substituting the output from the first step into its command. ### Running the Workflow With the dependency defined, we can now make a more complex request that requires creating a file and then compressing it. ~~~bash claude "Please create a summary of @index.ts and then compress the summary." ~~~ The agent correctly follows the multi-step process: 1. Analyzes index.ts and writes a new summary file (e.g., index-ts-summary.md). 2. Executes the timestamp skill to get the current timestamp. 3. Executes the compress skill, using the tar command to archive index-ts-summary.md into a file with the correct timestamped name. This pattern of creating small, single-purpose skills and composing them through explicit requirements allows you to build sophisticated, reliable, and reusable workflows for your AI agent.https://egghead.io/lessons/stacking-claude-skills-to-create-complex-workflows~ob9ww