Skip to content
This repository was archived by the owner on Jun 3, 2026. It is now read-only.

tests

tests #55

name: Project Manager Agent
on:
push:
workflow_dispatch:
inputs:
project_overview_file:
description: 'Path to the project overview markdown file'
required: false
type: string
default: '.project/project-overview.md'
task_registry_file:
description: 'Path and filename of the task registry file'
required: false
type: string
default: '.project/task-registry.md'
tasks_dir:
description: 'Directory containing tasks'
required: false
type: string
default: '.project/tasks/'
project_title:
description: 'Title of the project for the tracking issue'
required: false
type: string
prompt:
description: 'A prompt to give the agent. Overrides the default behavior of reading the repository files'
required: false
type: string
jobs:
project-manager:
runs-on: ubuntu-latest
permissions:
contents: write
issues: write
pull-requests: write
id-token: write # Required for OIDC
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Prepare Project Manager Script
id: project-manager-agent-script
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const systemPrompt = fs.readFileSync('.github/agent-scripts/project-manager.script.md', 'utf8');
const projectOverview = fs.readFileSync('${{ inputs.project_overview_file || '.project/project-overview.md' }}', 'utf8');
const taskRegistry = fs.readFileSync('${{ inputs.task_registry_file || '.project/task-registry.md' }}', 'utf8');
const { execSync } = require('child_process');
const tasksDir = '${{ inputs.tasks_dir || '.project/tasks' }}';
const tasksList = execSync(`find ${tasksDir}`, { encoding: 'utf8' }).trim();
const task = `project_overview:
\`\`\`markdown
${projectOverview}
\`\`\`
tasks:
\`\`\`
${tasksList}
\`\`\`
task_registory:
\`\`\`
${taskRegistry}
\`\`\`
`;
core.setOutput('system_prompt', systemPrompt);
core.setOutput('task', task);
- uses: strands-agents/strands-action@main
with:
aws_role_arn: ${{ secrets.AWS_ROLE_ARN }}
system_prompt: ${{ steps.project-manager-agent-script.outputs.system_prompt }}
thinking_type: "enabled"
budget_tokens: "8000"
model: "global.anthropic.claude-sonnet-4-5-20250929-v1:0"
anthropic_beta: "interleaved-thinking-2025-05-14"
max_tokens: "64000"
tools: "editor,file_read,shell,http_request,add_comment,list_issues,list_pull_requests,create_issue,get_issue,get_pull_request,get_pr_review_and_comments,update_issue,get_issue_comments,notebook"
task: ${{ inputs.prompt || steps.project-manager-agent-script.outputs.task }}