28 lines
1.6 KiB
Markdown
28 lines
1.6 KiB
Markdown
# Comparison Execution Internals
|
|
|
|
The comparison execution core receives an already prepared report and an
|
|
already inspected, ordered profile list. It initializes an outcome for every
|
|
selected profile, launches each started profile in its own goroutine, and
|
|
waits for every started goroutine before returning. Results retain the supplied
|
|
selection order even though execution completes in an arbitrary order.
|
|
|
|
Every profile uses the exact inspected prompt identity and a private copy of
|
|
the same prepared data package. Provider, generated-text validation, rendering,
|
|
or debug-write failure becomes that profile's safe failed outcome and does not
|
|
cancel its peers. The application deliberately imposes no additional semaphore:
|
|
Promptkit owns backend capacity. Cancellation or a deadline marks unfinished
|
|
outcomes as skipped or failed, joins work, and prevents bundle publication.
|
|
|
|
When debugging is enabled, each execution receives a deterministic reference
|
|
derived from the comparison identity, ordered profile position, and safe
|
|
profile slug. This keeps concurrent captures separate. The debug writer itself
|
|
owns secure-root validation and file permissions. It safely creates shared
|
|
missing ancestors during concurrent writes, then rejects symlink and non-
|
|
directory components. Operational retention and sensitivity are documented in
|
|
the [operations guide](../operations.md).
|
|
|
|
The output result and its safe errors are converted into the durable contract
|
|
only by comparison publication. See [comparison publication
|
|
internals](comparison-publication.md) and the external [comparison bundle
|
|
contract](../integrations/comparison-bundle.md).
|