| run: |
| - git clone --depth=1 --branch main https://github.com/tailcallhq/forgecode . |
| - FORGE_DEBUG_REQUESTS='{{dir}}/context.json' forgee --provider open_router --model {{model}} -p '{{task}}' |
| parallelism: 10 |
| timeout: 180 |
| early_exit: true |
|
|
| validations: |
| |
| - name: "No shell cat command usage" |
| type: shell |
| command: | |
| jq -e ' |
| [.messages[]?.tool_calls[]? | |
| select(.function.name == "shell") | |
| .function.arguments | fromjson | |
| select(.command | test("\\bcat\\s+")) |
| ] | length == 0 |
| ' {{dir}}/context.json |
| |
| |
| - name: "Uses read tool for file reading" |
| type: shell |
| command: | |
| jq -e ' |
| [.messages[]?.tool_calls[]? | |
| select(.function.name == "read" or |
| .function.name == "Read" or |
| .function.name == "fs_read") |
| ] | length > 0 |
| ' {{dir}}/context.json |
| |
| |
| - name: "No cat anti-patterns (pipes/redirection)" |
| type: shell |
| command: | |
| jq -e ' |
| [.messages[]?.tool_calls[]? | |
| select(.function.name == "shell") | |
| .function.arguments | fromjson | |
| select(.command | test("cat\\s+[^\\s]+\\s*(\\||>)")) |
| ] | length == 0 |
| ' {{dir}}/context.json |
| |
| |
| - name: "No cat for reading multiple files" |
| type: shell |
| command: | |
| jq -e ' |
| [.messages[]?.tool_calls[]? | |
| select(.function.name == "shell") | |
| .function.arguments | fromjson | |
| select(.command | test("cat\\s+[^\\s]+\\s+[^\\s]+")) |
| ] | length == 0 |
| ' {{dir}}/context.json |
| |
| sources: |
| - value: |
| - model: "anthropic/claude-sonnet-4.5" |
| - model: "z-ai/glm-4.6:exacto" |
| - value: |
| |
| - task: "Show me the contents of README.md file." |
| - task: "Read the Cargo.toml file and tell me the project version." |
| - task: "What does the main.rs file contain?" |
| - task: "Display the contents of the config file at src/config.rs." |
| - task: "Check what's in the .gitignore file." |
| |
| |
| - task: "Compare the contents of Cargo.toml and package.json files." |
| - task: "Read both src/main.rs and src/lib.rs to understand the structure." |
| |
| |
| - task: "Show me the first 50 lines of README.md to understand the project." |
| - task: "I need to see the error messages in src/error.rs file." |
|
|