You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Dry-run validation with per-module cwd for agentic sync (#489)
17
+
-**Dry-run validation with per-module cwd in agentic sync** — Before dispatching parallel `pdd sync` workers, `run_agentic_sync` now runs a dry-run validation phase for every module. `_resolve_module_cwd()` discovers the correct working directory by scanning `.pddrc` files at the project root and up to two levels of subdirectories; the deepest matching context wins. `_run_single_dry_run()` executes `pdd sync <basename> --dry-run --agentic --no-steer` from the resolved cwd. If the dry-run fails, `_llm_fix_dry_run_failure()` builds a project-tree snapshot and `.pddrc` location list, invokes the LLM via a new `agentic_sync_fix_dry_run_LLM.prompt`, extracts the `SYNC_CWD:` marker from the response, validates the suggested path is inside the project root, and re-runs the dry-run to confirm. The resulting `module_cwds` dict is passed to `AsyncSyncRunner`, which now uses a per-module cwd instead of always running from the project root.
18
+
-**Subproject directory support in agentic architecture** — `pdd generate --agentic` and the underlying orchestrator now accept a `--output-dir` / `target_dir` option to scope a new project to a subdirectory. `_extract_target_dir()` auto-parses the target directory from the GitHub issue body using tight patterns (backtick/double-quote wrapped, or unquoted paths containing `_` or `/` to avoid false matches on natural English). The orchestrator derives `base_dir = cwd / target_dir` and creates it if needed; all `architecture.json` reads/writes and scaffolding file creation are redirected to `base_dir`. Step 6 gains an MD5 hash check before and after execution — if the file content is unchanged the step is marked failed immediately, preventing silent no-ops where the agent reformats the existing file instead of creating a new architecture. The `agentic_arch_step6_generate_LLM.prompt` now includes explicit `target_dir` instructions.
11
19
12
20
### Fix
13
21
14
-
-improve e2e test resilience by skipping on LLM generation failures or empty responses.
22
+
-**E2E test resilience** — `test_e2e_issue_342_syspath_isolation` now skips (instead of failing) when the LLM returns an empty response or a generation failure, making CI stable in environments without an API key.
Copy file name to clipboardExpand all lines: docs/prompting_guide.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -195,10 +195,10 @@ Tip: Prefer small, named sections using XML‑style tags to make context scannab
195
195
196
196
The PDD preprocessor supports additional XML‑style tags to keep prompts clean, reproducible, and self‑contained. Processing order (per spec) is: `pdd` → `include`/`include-many` → `shell` → `web`. When `recursive=True`, `<shell>` and `<web>` are deferred until a non‑recursive pass.
197
197
198
-
- `<pdd>…</pdd>`
198
+
- ``
199
199
- Purpose: human‑only comment. Removed entirely during preprocessing.
200
200
- Use: inline rationale or notes that should not reach the model.
201
-
- Example: `Before step X <pdd>explain why we do this here</pdd>`
201
+
- Example: `Before step X `
202
202
203
203
- `<shell>…</shell>`
204
204
- Purpose: run a shell command and inline stdout at that position.
@@ -259,7 +259,7 @@ Place architecture metadata tags at the **top of your prompt file** (after any `
Think of prompts as your programming language. Keep them concise, explicit, and modular. Regenerate instead of patching, verify behavior with accumulating tests, and continuously back‑propagate implementation learnings into your prompts. That discipline is what converts maintenance from an endless patchwork into a compounding system of leverage.
909
+
Think of prompts as your programming language. Keep them concise, explicit, and modular. Regenerate instead of patching, verify behavior with accumulating tests, and continuously back‑propagate implementation learnings into your prompts. That discipline is what converts maintenance from an endless patchwork into a compounding system of leverage.
0 commit comments