.. _promy-aa:

****************************************************
PROMY --- Any Aims (AA)
****************************************************

Open tasks for the PROMY compiler.


Operational Aims
==================

.. list-table::
   :header-rows: 1
   :widths: 28 52 10

   * - Item
     - Description
     - Priority
   * - AA-PROMY-Build-a1
     - Cross-reference to :ref:`AA-PROMY-Build-a1 <aa-promy-build-a1>`
       in e7day/anyaims.rst. Full formal specification of PROMY.
     - high
   * - AA-PROMY-FeedPrompt-a1
     - Write prompt templates for GROW and REAP stages (SEED and
       FEED templates are done). **Resolved (2026-03-30):** Both
       GROW and REAP templates drafted. All four stages now have
       prompt templates.
     - **resolved**
   * - AA-PROMY-ModelChangeGrep-a1
     - **Consume FORGE MODEL_CHANGE markers in GROW.** When
       AA-FORGE-ModelChangeMarker-a1 is implemented, update the
       GROW prompt template to use ``grep MODEL_CHANGE`` as the
       primary method for building the repair inventory. Keep the
       keyword-scan fallback for llogs written before the convention.
     - medium (blocked by AA-FORGE-ModelChangeMarker-a1)


Adversarial Aims
==================

.. list-table::
   :header-rows: 1
   :widths: 28 52 10

   * - Item
     - Description
     - Priority
   * - .. _aa-promy-symbol-conflicts-a1:

       AA-PROMY-SymbolConflicts-a1
     - **Cross-model symbol namespace conflicts.** As models multiply,
       symbol collisions become inevitable. Current example: **H** is
       used as both Humanity (agent set, from JUB) and Shannon entropy
       (function, in e7He m0.ax3). These are distinguishable by context
       today, but without a systematic namespace strategy, collisions
       will proliferate as each model imports PET/JUB symbols and adds
       its own.

       **The problem is structural:** each model is developed in a FORGE
       session that sees only its own symbols. PROMY sees one model at a
       time. SISYF sees all models but is read-only. Nobody is currently
       responsible for cross-model namespace coherence.

       **Proposed strategy (to be implemented):**

       1. **Namespace prefixing convention.** Each model's local symbols
          get a short prefix when used outside the model: ``e7He.β``,
          ``jub.H``, ``pet.G``. Within a model's own files, the bare
          symbol is fine. The prefix is only needed in cross-model
          contexts (SISYF output, shared pages, overview pages).

       2. **Reserved symbols registry.** A single file
          (``compiler/space/reserved-symbols.rst`` or similar) lists
          every symbol in use across all models, with the owning model
          and meaning. Before FORGE introduces a new symbol, the
          registry is checked. PROMY:FEED checks the registry as part
          of its symbols audit.

       3. **Collision resolution rules.** When a collision is found:
          (a) If one usage is standard mathematics (e.g., H for entropy),
          it keeps the bare symbol with a parenthetical disambiguator.
          (b) If both usages are model-specific, the older model keeps
          the bare symbol; the newer model uses a prefixed form.
          (c) If the collision is between a set and a function (like
          H/Humanity vs. H(X)/entropy), a notation note is added to
          both models' symbols.rst files (as done for e7He).

       4. **SISYF integration.** When SISYF compiles cross-model views,
          it applies namespace prefixes automatically for any symbol that
          appears in multiple models with different meanings.

       **Scope:** This affects all models. Implementation should start
       with a reserved-symbols registry (step 2), which is low-effort
       and immediately useful. Steps 1, 3, 4 require more design.
     - high
