Install
$ agentstack add skill-kirkruglov-claude-project-manager-generate-questionnaire ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Skill: generate-questionnaire
Generates structured questionnaires for IT project management. Two types: (1) client questionnaire — collects initial requirements at project start; (2) team questionnaire — collects lessons learned at project closure. Also structures received answers for downstream skills.
Triggers
Russian: «сформируй опросник», «подготовь опросник для заказчика», «создай бриф заказчику», «подготовь анкету по урокам», «структурируй ответы заказчика», «нужен опросник», «подготовь вопросы для заказчика» English: "generate questionnaire", "create client brief", "prepare lessons questionnaire", "structure stakeholder answers", "build client brief", "prepare project brief"
Language Detection
Determine the language of the user's request:
- If the request is in Russian → use templates with the
-rusuffix - Otherwise → use templates with the
-ensuffix - All output (headings, labels, agent messages) must match the detected language.
Input
| Data | Required | Source | Notes | |------|:--------:|--------|-------| | Questionnaire type | yes | command or CLAUDE.md | client (phase 1) or lessons (phase 6) | | Project name | yes | CLAUDE.md or command | Used in the file header | | Recipient(s) | yes | command or CLAUDE.md | Name and email. For client — project sponsor; for lessons — team members | | PM name | no | CLAUDE.md | Inserted into questionnaire metadata | | Response deadline (deadline) | no | command | For lessons type only. If not provided — ask: "Specify the deadline by which the team should submit their responses." |
If the type is not explicitly specified — determine from the project phase (from CLAUDE.md):
- Phase 1 (initiation) →
client - Phase 6 (closure) →
lessons - Otherwise → ask one clarifying question:
Please clarify what you need:
A) Create a client questionnaire (Phase 1 — Initiation)
B) Create a team lessons-learned questionnaire (Phase 6 — Closure)
C) Structure received client answers
D) Structure received team answers
Output
| Type | File | Project path | Mode | |------|------|--------------|------| | client | questionnaire-client.md | {project}/01-initiation/ | generate | | lessons | questionnaire-lessons.md | {project}/04-closure/ | generate | | any | Structured report in chat | — | structure |
Instructions
Step 1 — Determine Mode and Type
Check the request type first:
- If the request contains "evaluate", "analyze", "is it worth doing", "give a recommendation on the project" → this is an analysis request outside the skill's scope. Respond:
"This skill structures questionnaire data but does not analyze answers or assess project viability. I can structure the answers and pass them to generate-charter, where the agent will flag ambiguities. Continue?" Wait for confirmation. Do not proceed until confirmed.
Determine the mode:
- Command to generate / prepare / create a questionnaire →
generatemode - Received answers ready to be structured →
structuremode
If the mode is unclear — ask the clarifying question (see template above).
Step 2 — generate Mode: Create Questionnaire
- Determine language.
- Read the template:
client→questionnaire-client-{lang}.mdlessons→questionnaire-lessons-{lang}.md
- Fill in metadata placeholders:
| Placeholder | Source | Notes | |-------------|--------|-------| | {{project_name}} | CLAUDE.md or command | | | {{recipient_name}} | command or CLAUDE.md | | | {{pm_name}} | CLAUDE.md (if available) | | | {{date}} | current date (YYYY-MM-DD) | | | {{deadline}} | command | lessons type only. If not in command — ask before saving. |
- Save the file according to the Output table.
4a. If type is lessons and only 1 recipient is specified — append to the confirmation message: "1 recipient specified. If you need to add more — let me know before sending."
- Show in chat:
- What was created: "Questionnaire saved as [filename] in [path]."
- Next step: "Prepare an email draft for sending?"
- After confirmation — proceed to Step 3.
- Log to
logs/log.md: date, skill, created file, recipient.
Step 3 — Prepare Email and Call send-email
Determine parameters by type:
| Type | Email template | Attachment | Format | Level | |------|---------------|-----------|--------|-------| | client | email-tpl-questionnaire-client-{lang}.md | questionnaire-client.md | .docx | 3 (with confirmation) | | lessons | email-tpl-questionnaire-lessons-{lang}.md | questionnaire-lessons.md | .md | 2 (PM in CC) |
Autonomy levels:
- Level 2 — agent sends the email; PM added to CC automatically.
- Level 3 — agent shows email draft; waits for human confirmation before sending.
Call send-email:
send-email(
type = "questionnaire-[client|lessons]",
recipients = [list of recipients with email],
template = [path to email template],
attachment = [path to questionnaire file],
attach_format = [.docx | .md],
level = [3 | 2]
)
> Stub: send-email is not yet implemented. Until it is — display an email draft based on the email template and offer to send manually via Gmail.
Step 4 — structure Mode: Structure Answers
- Receive answers from chat or an attached file.
- Determine the answer type:
- Answers about project goals, scope, constraints →
clienttype - Answers about lessons learned and retrospective →
lessonstype
- Structure by blocks matching the corresponding questionnaire template.
- Flag unanswered and ambiguous questions.
- Show in chat:
- Structured data by block
- List of unanswered / ambiguous items (if any)
- Recommendation: "Pass data to [generate-charter | generate-closure-report]?"
- On confirmation — offer to launch the downstream skill.
Dependencies
Reads:
CLAUDE.mdof the managed project — project name, PM, contacts- Templates from
templates/: questionnaires (4 files) + email templates (4 files)
Passes data to:
generate-charter— after structuringclientanswers (phase 1)generate-closure-report— after structuringlessonsanswers (phase 6)
Calls:
send-email— delivery module (stub until implemented)
Constraints
- Questionnaire template is fixed — questions are not generated dynamically by project type
- Does not analyze answers or assess project viability
- Does not send email directly — calls send-email
- Does not create the project charter or close the project — only passes data downstream
- Handles one project per invocation
Changelog
| Date | Version | Change | |------|---------|--------| | 2026-04-06 | 1.0 | Skill created. Two questionnaire types (client, lessons). Two modes (generate, structure). send-email stub. | | 2026-04-06 | 1.1 | Post-eval fixes (4/6 → 6/6): added {{deadline}} to input and placeholder tables; added step 4a for single-recipient warning (lessons); added guard rail in Step 1 for analysis requests. |
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: KirKruglov
- Source: KirKruglov/claude-project-manager
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.