Loading...
Loading...
Use skill if you are running many small Codex-native web searches through codex exec with per-question files and parseable answer artifacts.
npx skill4agent add yigitkonur/skills-by-yigitkonur search-it-bulk-by-codexcodex exec--searchSubagent model: gpt-5.4-mini
Subagent reasoning: medium
Orchestrator model: gpt-5.4
Orchestrator reasoning: medium
Search: codex --search
Session root: .agent-docs/qa-session/codex-c model_reasoning_effort=mediumcodex --help
codex exec --helpcodex --helpexec--search-m/--model-c/--config-a/--ask-for-approval-s/--sandbox-C/--cdcodex exec --help--skip-git-repo-check--output-last-message-o--json--sandbox--searchexec--ask-for-approval-a neverexec--skip-git-repo-check--sandbox workspace-write-ocodex --search \
-m gpt-5.4-mini \
-c model_reasoning_effort=medium \
-a never \
exec \
--skip-git-repo-check \
--sandbox read-only \
-o /tmp/codex-web-check.txt \
"Use native live web search. What is the headline and URL of the newest item currently listed on the OpenAI News page? Answer in one sentence with the date if shown."model: gpt-5.4-minireasoning effort: mediumhttps://openai.com/index/gartner-2026-agentic-coding-leader/mkdir -p .agent-docs/qa-session.agent-docs/qa-session/001-question.md
.agent-docs/qa-session/002-question.md.agent-docs/qa-session/001-answer-correct.md
.agent-docs/qa-session/002-answer-not-clear.md| Suffix | Use when |
|---|---|
| Answer is confirmed and high-confidence |
| Useful partial results, not fully conclusive |
| Initial assumption was wrong; explain why |
| Conflicting sources or insufficient signal |
| Search exhausted time/URL budget without resolution |
NNNq.mdNNNa-{status}.mdNNN-question.mdNNN-answer-{status}.md# 001 Question
Question: <one focused sentence>
Context:
- <known facts>
- <false positives or traps>
Expected answer:
- <single line, yes/no, path, package name, year, owner, etc.># 001 Answer
Question: <copy from 001-question.md>
Status: <correct|findings|incorrect|not-clear|timeout>
Answer: <single line, value, path, yes/no, or concise sentence>
Confidence: <high|medium|low>
Sources:
- <URL or exact search term> - <what it proved>
Notes:
<Optional. Only include material interpretation notes.>Search up to 50 URLs if needed.
Search up to 50 keyword/search-term variants if needed.
Use fewer when the evidence is already strong.library X changelog feature Y
library X GitHub issues feature Y
library X documentation Y API
library X Y workaround OR alternative
library X Y release notescat > .agent-docs/qa-session/001-prompt.txt <<'PROMPT'
You are a Codex research subagent using native Codex web search only.
Do not use MCPs, browser plugins, custom scrapers, or external research tools.
Read .agent-docs/qa-session/001-question.md.
Choose exactly one status suffix from: correct, findings, incorrect,
not-clear, timeout.
Write exactly one answer file:
.agent-docs/qa-session/001-answer-<chosen-status>.md
Do not include the angle brackets literally.
Before searching, decompose the question into 3-5 narrower sub-questions. Do
not search the top-level question directly as your only search. Search up to
50 URLs and up to 50 keyword variants if needed; you may need fewer. Prioritize
the highest-signal search angles based on your own experience.
Use the required answer template. Keep it concise. No preamble, no extra
commentary, no markdown headers beyond the template.
Your answer file must contain these fields:
Question: <copy from question file>
Status: <chosen status>
Answer: <single line>
Confidence: <high|medium|low>
Sources:
- <URL or exact search term> - <what it proved>
Notes:
<optional, only if material>
If the answer likely does not exist, stop spinning and write not-clear or
incorrect with the best evidence.
PROMPTcodex --search \
-m gpt-5.4-mini \
-c model_reasoning_effort=medium \
-a never \
exec \
--skip-git-repo-check \
--sandbox workspace-write \
-C "$PWD" \
-o .agent-docs/qa-session/001-last-message.txt \
- < .agent-docs/qa-session/001-prompt.txtcd /path/to/project
mkdir -p .agent-docs/qa-session
for q in .agent-docs/qa-session/*-question.md; do
base="${q%-question.md}"
n="$(basename "$base")"
prompt=".agent-docs/qa-session/${n}-prompt.txt"
last=".agent-docs/qa-session/${n}-last-message.txt"
cat > "$prompt" <<PROMPT
You are a Codex research subagent using native Codex web search only.
Do not use MCPs, browser plugins, custom scrapers, or external research tools.
Read ${q}.
Choose exactly one status suffix from: correct, findings, incorrect, not-clear, timeout.
Write exactly one answer file: ${base}-answer-<chosen-status>.md
Do not include the angle brackets literally.
Before searching, decompose the question into 3-5 narrower sub-questions.
Search up to 50 URLs and up to 50 keyword variants if needed.
Your answer file must contain:
Question: <copy from question file>
Status: <correct|findings|incorrect|not-clear|timeout>
Answer: <single line>
Confidence: <high|medium|low>
Sources:
- <URL or exact search term> - <what it proved>
Notes:
<optional, only if material>
PROMPT
(
codex --search \
-m gpt-5.4-mini \
-c model_reasoning_effort=medium \
-a never \
exec \
--skip-git-repo-check \
--sandbox workspace-write \
-C "$PWD" \
-o "$last" \
- < "$prompt"
) >> .agent-docs/qa-session/_dispatch.log 2>&1 &
while [ "$(jobs -pr | wc -l | tr -d ' ')" -ge 8 ]; do
sleep 5
done
done
waitdelay=60
while jobs -pr | grep -q .; do
sleep "$delay"
echo "[progress] Checking answer files..."
ls .agent-docs/qa-session/*-answer-*.md 2>/dev/null | sort || true
echo "[progress] Pending questions:"
for q in .agent-docs/qa-session/*-question.md; do
base="${q%-question.md}"
ls "${base}"-answer-*.md >/dev/null 2>&1 || echo "PENDING: $q"
done
case "$delay" in
60) delay=120 ;;
120) delay=240 ;;
240) delay=480 ;;
*) delay=600 ;;
esac
doneNNN-answer-timeout.mdfor q in .agent-docs/qa-session/*-question.md; do
base="${q%-question.md}"
ls ${base}-answer-*.md 2>/dev/null || echo "MISSING: $q"
donetimeoutnot-clearout=.agent-docs/qa-session/_summary.tsv
printf 'id\tstatus\tanswer\tconfidence\tfile\n' > "$out"
for q in .agent-docs/qa-session/*-question.md; do
base="${q%-question.md}"
id="$(basename "$base")"
answer_file="$(ls -t "${base}"-answer-*.md 2>/dev/null | head -1)"
if [ -z "$answer_file" ]; then
printf '%s\tmissing\t\t\t\n' "$id" >> "$out"
continue
fi
answer_status="$(basename "$answer_file" | sed -E 's/^[0-9]+-answer-(.*)\.md$/\1/')"
answer="$(grep -m1 '^Answer:' "$answer_file" | sed 's/^Answer:[[:space:]]*//')"
confidence="$(grep -m1 '^Confidence:' "$answer_file" | sed 's/^Confidence:[[:space:]]*//')"
printf '%s\t%s\t%s\t%s\t%s\n' "$id" "$answer_status" "$answer" "$confidence" "$answer_file" >> "$out"
doneecho "questions: $(ls .agent-docs/qa-session/*-question.md | wc -l | tr -d ' ')"
echo "answers: $(ls .agent-docs/qa-session/*-answer-*.md 2>/dev/null | wc -l | tr -d ' ')"
grep -E $'\t(timeout|not-clear|missing)\t' .agent-docs/qa-session/_summary.tsv || true
grep -L '^Answer:' .agent-docs/qa-session/*-answer-*.md 2>/dev/null || true_summary.tsvAnswer:Confidence:.agent-docs/qa-session/