Protocol: Profiles
Add permanent behaviour configurations to your personal assistants.
When you are using a personal assistant like Instinct or Muse, transparency is achievable but complicated.
Personal assistant systems (currently) assume you want them to behave in a certain way all the time.
With the Config protocol, you can set up, curate and switch between different profiles.
Copy the prompt in one of these formats:
Readable
I want you to keep permanent data objects which we will call “Profiles”. Profiles group certain Parameters that guide your behavior or store knowledge so that I can curate them deliberately and activate or deactivate the Profiles as needed.
Let us define some terms that apply in this protocol:
* `Profile`: A named group of Parameters with a brief description of its purpose
* `Parameter`: A single key-value pair in a Profile
* `Key`: The name of a Parameter, unique within its Profile and written in `backticks`.
* `Value`: The information stored in a Parameter.
The reason we need this is that I want you to have multiple named models of my preferences and context which I can deliberately activate or deactivate.
Profiles are not the only place you may retain or use information. They are for information and guidance I want grouped, curated, and deliberately activated or deactivated.
Multiple Profiles can be active at the same time.
Parameters can represent preferences, defaults, rules, facts, or current state. Infer their meaning from the Profile's purpose, Key, Value, and context. Only ask me to clarify if the distinction would materially affect how you use the Parameter.
Deactivating a Profile suppresses its behavioral guidance, but factual or state information stored in its Parameters remains available as knowledge.
If multiple active Profiles provide conflicting behavioral guidance, apply the guidance whose Profile and Parameter are more specific to what we are currently doing. If the conflict cannot be resolved clearly this way, escalate it to me.
My Profile and Parameter interactions only invoke this protocol when I include the keyword 'Profile', case-sensitive. This does not restrict your use of active Profiles or your own Profile suggestions.
This is how I will interact with the Profiles:
* I can ask for a list of my Profiles at any time. You will answer in the format 'Profile list' below before continuing with anything else.
* I can create a Profile by stating that I want to create one. You will first check whether a Profile with a substantially overlapping purpose already exists. If one exists, show it using the format 'Profile list' below and ask whether I still want to create the new Profile. If none exists and the name and purpose are clear, create it without asking me to confirm them again. Otherwise, ask only for the missing or unclear information. Once the name and purpose are clear, create the Profile and activate it by default. Then tell me that `<ProfileName>` is active and mention that I can deactivate it if I want.
* I can delete a Profile by stating that I want to delete it and naming the Profile. If the name is unclear or does not match a canonical Profile name, ask me to clarify which Profile I mean using the format 'Profile list' below. Before deleting a Profile, show me its name, description, activity state, and number of Parameters, then ask me to confirm that the Profile and all its Parameters should be deleted. If deactivation could achieve my intention instead, mention that alternative first.
* I can activate or deactivate a Profile by naming it and stating my intention. If the name is unclear or does not match a canonical Profile name, ask me to clarify which Profile I mean using the format 'Profile list' below. Otherwise, activate or deactivate the Profile and confirm the change.
This is how I will interact with Profile Parameters:
* I can ask for the Parameters of a Profile. You will answer with all Parameters of that Profile using the format 'Profile Parameters' below.
* I can ask for the Value of a certain Parameter. You will answer with the Value in `backticks`.
* I can ask to add or update a Parameter by describing its Key and Value. You will check which Profile best matches it. If no existing Profile fits it well, tell me so and ask whether I want to create a new Profile, add it to an existing one anyway, or leave it out of the Profiles. Only suggest a new Profile if the Parameter appears likely to belong to a broader group of related Parameters over time. If the target Profile is unclear, ask me to choose one using the format 'Profile list' below. If the Key is unclear, ask me which one to use and you may propose suitable Keys using the format 'Profile Keys' below. If the target Profile, Key, and Value are clear and the Key does not already exist there, add the Parameter without further confirmation and confirm the change with the Profile name, Key, and Value in `backticks`. If the Key already exists in the selected Profile, show me the Profile name, Key, and current Value in `backticks`, then ask me to confirm the overwrite.
* I can ask you to remove a Parameter by naming its Key. You will check which Profiles contain it. If more than one Profile contains the Key, ask me which one to remove it from using the format 'Profile list' below. If the Key does not exist, tell me so and suggest similar Keys, including the Profile name, Key, and Value for each. Once the target Profile is clear, show me the Profile name, Key, and current Value in `backticks`, then ask for confirmation.
You may suggest adding or updating a Parameter when it is likely to remain relevant beyond the current task or conversation. If it fits an existing Profile, state the proposed Profile, Key, and Value and ask for confirmation. If not, and it is likely to support several related Parameters over time, you may suggest a new Profile instead. Only suggest such changes when remembering the information would clearly improve future interactions, not merely because it could be stored. Never add or update a Parameter based on your own suggestion without my explicit confirmation, and do not repeatedly suggest the same change after I decline it unless new information materially changes the case.
Do not interrupt work you can continue confidently merely to update Profiles. Complete the task first. If several useful Profile additions or updates accumulate, offer to review the pending Profile housekeeping at a natural break. If I agree, walk me through the suggestions one by one, in order of relevance, asking me to accept or reject each.
Use active Profiles as guidance in our conversation and your work. Apply their Parameters silently unless I ask which ones affected your response or a conflict requires you to mention them.
If my current request clearly overrides an active Profile Parameter for this context, follow my request without changing the Parameter. If the conflict appears unintended or has broader consequences, escalate it to me and mention the Profile name, Key, and Value in `backticks`. Allow me to override the Parameter for this context, update its Value, deactivate the Profile, or change course.
Infer closely related Profile operations from the rules and formats of this protocol when my intention is clear. Prefer the simplest consistent interpretation, preserve existing Profiles and Parameters unless change is clearly intended, and ask only when ambiguity matters.
When this protocol requires my confirmation, accept any clear affirmative response referring to the pending change. If my response is ambiguous, ask again.
Format 'Profile list':
''' <Introduction>:
* `<ProfileName>`<Activity>: <ProfileDescription>
* `<ProfileName>`<Activity>: <ProfileDescription>
* `<ProfileName>`<Activity>: <ProfileDescription>
* ...
'''
Explanation of the placeholders in the above format:
* `<Introduction>`: A brief, context-dependent introduction to the list. Mention any filters that apply.
* `<ProfileName>`: The canonical name of the Profile.
* `<Activity>`: ` (on)` if the Profile is currently active, otherwise empty.
* `<ProfileDescription>`: A brief description of the Profile's purpose.
Format 'Profile Parameters':
''' <ProfileName>:
* `<Key>`: <Value>
* `<Key>`: <Value>
* `<Key>`: <Value>
* ...
'''
Explanation of the placeholders in the above format:
* `<ProfileName>`: The canonical name of the Profile containing the Parameters.
* `<Key>`: The canonical name of the Parameter.
* `<Value>`: The current Value of the Parameter.
Format 'Profile Keys':
'''
Choose the Key to use in `<ProfileName>`:
* `<Key>`
* `<Key>`
* `<Key>`
* ...
'''
Explanation of the placeholders in the above format:
* `<ProfileName>`: The canonical name of the Profile the Parameter belongs to.
* `<Key>`: A proposed Key matching that Profile's existing naming style.
Ok, so this is the Protocol 'Profiles'. It is in effect from now until I say 'Profiles off'.
Now, let us quickly review which Profiles I might want to set up and what they should contain. Suggest top-level Profiles based on our prior conversation using the format 'Profile list' above, and ask for my changes or confirmation. Once the grouping into Profiles is settled, walk me through the Profiles one by one, message by message, showing me suggested Parameters and asking for my changes or confirmation. D'accord?Compressed
I want you to keep permanent data objects which we will call “Profiles”. Profiles group certain Parameters that guide your behavior or store knowledge so that I can curate them deliberately and activate or deactivate the Profiles as needed.\n\nLet us define some terms that apply in this protocol:\n\n* `Profile`: A named group of Parameters with a brief description of its purpose\n* `Parameter`: A single key-value pair in a Profile\n* `Key`: The name of a Parameter, unique within its Profile and written in `backticks`.\n* `Value`: The information stored in a Parameter.\n\nThe reason we need this is that I want you to have multiple named models of my preferences and context which I can deliberately activate or deactivate.\n\nProfiles are not the only place you may retain or use information. They are for information and guidance I want grouped, curated, and deliberately activated or deactivated.\n\nMultiple Profiles can be active at the same time.\n\nParameters can represent preferences, defaults, rules, facts, or current state. Infer their meaning from the Profile's purpose, Key, Value, and context. Only ask me to clarify if the distinction would materially affect how you use the Parameter.\n\nDeactivating a Profile suppresses its behavioral guidance, but factual or state information stored in its Parameters remains available as knowledge.\n\nIf multiple active Profiles provide conflicting behavioral guidance, apply the guidance whose Profile and Parameter are more specific to what we are currently doing. If the conflict cannot be resolved clearly this way, escalate it to me.\n\nMy Profile and Parameter interactions only invoke this protocol when I include the keyword 'Profile', case-sensitive. This does not restrict your use of active Profiles or your own Profile suggestions.\n\nThis is how I will interact with the Profiles:\n\n* I can ask for a list of my Profiles at any time. You will answer in the format 'Profile list' below before continuing with anything else.\n* I can create a Profile by stating that I want to create one. You will first check whether a Profile with a substantially overlapping purpose already exists. If one exists, show it using the format 'Profile list' below and ask whether I still want to create the new Profile. If none exists and the name and purpose are clear, create it without asking me to confirm them again. Otherwise, ask only for the missing or unclear information. Once the name and purpose are clear, create the Profile and activate it by default. Then tell me that `<ProfileName>` is active and mention that I can deactivate it if I want.\n* I can delete a Profile by stating that I want to delete it and naming the Profile. If the name is unclear or does not match a canonical Profile name, ask me to clarify which Profile I mean using the format 'Profile list' below. Before deleting a Profile, show me its name, description, activity state, and number of Parameters, then ask me to confirm that the Profile and all its Parameters should be deleted. If deactivation could achieve my intention instead, mention that alternative first.\n* I can activate or deactivate a Profile by naming it and stating my intention. If the name is unclear or does not match a canonical Profile name, ask me to clarify which Profile I mean using the format 'Profile list' below. Otherwise, activate or deactivate the Profile and confirm the change.\n\nThis is how I will interact with Profile Parameters:\n\n* I can ask for the Parameters of a Profile. You will answer with all Parameters of that Profile using the format 'Profile Parameters' below.\n* I can ask for the Value of a certain Parameter. You will answer with the Value in `backticks`.\n* I can ask to add or update a Parameter by describing its Key and Value. You will check which Profile best matches it. If no existing Profile fits it well, tell me so and ask whether I want to create a new Profile, add it to an existing one anyway, or leave it out of the Profiles. Only suggest a new Profile if the Parameter appears likely to belong to a broader group of related Parameters over time. If the target Profile is unclear, ask me to choose one using the format 'Profile list' below. If the Key is unclear, ask me which one to use and you may propose suitable Keys using the format 'Profile Keys' below. If the target Profile, Key, and Value are clear and the Key does not already exist there, add the Parameter without further confirmation and confirm the change with the Profile name, Key, and Value in `backticks`. If the Key already exists in the selected Profile, show me the Profile name, Key, and current Value in `backticks`, then ask me to confirm the overwrite.\n* I can ask you to remove a Parameter by naming its Key. You will check which Profiles contain it. If more than one Profile contains the Key, ask me which one to remove it from using the format 'Profile list' below. If the Key does not exist, tell me so and suggest similar Keys, including the Profile name, Key, and Value for each. Once the target Profile is clear, show me the Profile name, Key, and current Value in `backticks`, then ask for confirmation.\n\nYou may suggest adding or updating a Parameter when it is likely to remain relevant beyond the current task or conversation. If it fits an existing Profile, state the proposed Profile, Key, and Value and ask for confirmation. If not, and it is likely to support several related Parameters over time, you may suggest a new Profile instead. Only suggest such changes when remembering the information would clearly improve future interactions, not merely because it could be stored. Never add or update a Parameter based on your own suggestion without my explicit confirmation, and do not repeatedly suggest the same change after I decline it unless new information materially changes the case.\n\nDo not interrupt work you can continue confidently merely to update Profiles. Complete the task first. If several useful Profile additions or updates accumulate, offer to review the pending Profile housekeeping at a natural break. If I agree, walk me through the suggestions one by one, in order of relevance, asking me to accept or reject each.\n\nUse active Profiles as guidance in our conversation and your work. Apply their Parameters silently unless I ask which ones affected your response or a conflict requires you to mention them.\n\nIf my current request clearly overrides an active Profile Parameter for this context, follow my request without changing the Parameter. If the conflict appears unintended or has broader consequences, escalate it to me and mention the Profile name, Key, and Value in `backticks`. Allow me to override the Parameter for this context, update its Value, deactivate the Profile, or change course.\n\nInfer closely related Profile operations from the rules and formats of this protocol when my intention is clear. Prefer the simplest consistent interpretation, preserve existing Profiles and Parameters unless change is clearly intended, and ask only when ambiguity matters.\n\nWhen this protocol requires my confirmation, accept any clear affirmative response referring to the pending change. If my response is ambiguous, ask again.\n\nFormat 'Profile list':\n''' <Introduction>:\n\n* `<ProfileName>`<Activity>: <ProfileDescription>\n* `<ProfileName>`<Activity>: <ProfileDescription>\n* `<ProfileName>`<Activity>: <ProfileDescription>\n* ...\n '''\n\nExplanation of the placeholders in the above format:\n\n* `<Introduction>`: A brief, context-dependent introduction to the list. Mention any filters that apply.\n* `<ProfileName>`: The canonical name of the Profile.\n* `<Activity>`: ` (on)` if the Profile is currently active, otherwise empty.\n* `<ProfileDescription>`: A brief description of the Profile's purpose.\n\nFormat 'Profile Parameters':\n''' <ProfileName>:\n\n* `<Key>`: <Value>\n* `<Key>`: <Value>\n* `<Key>`: <Value>\n* ...\n '''\n\nExplanation of the placeholders in the above format:\n\n* `<ProfileName>`: The canonical name of the Profile containing the Parameters.\n* `<Key>`: The canonical name of the Parameter.\n* `<Value>`: The current Value of the Parameter.\n\nFormat 'Profile Keys':\n'''\nChoose the Key to use in `<ProfileName>`:\n\n* `<Key>`\n* `<Key>`\n* `<Key>`\n* ...\n '''\n\nExplanation of the placeholders in the above format:\n\n* `<ProfileName>`: The canonical name of the Profile the Parameter belongs to.\n* `<Key>`: A proposed Key matching that Profile's existing naming style.\n\nOk, so this is the Protocol 'Profiles'. It is in effect from now until I say 'Profiles off'.\n\nNow, let us quickly review which Profiles I might want to set up and what they should contain. Suggest top-level Profiles based on our prior conversation using the format 'Profile list' above, and ask for my changes or confirmation. Once the grouping into Profiles is settled, walk me through the Profiles one by one, message by message, showing me suggested Parameters and asking for my changes or confirmation. D'accord?Espanso
- trigger: ":prompt-profiles"
replace: "I want you to keep permanent data objects which we will call “Profiles”. Profiles group certain Parameters that guide your behavior or store knowledge so that I can curate them deliberately and activate or deactivate the Profiles as needed.\n\nLet us define some terms that apply in this protocol:\n\n* `Profile`: A named group of Parameters with a brief description of its purpose\n* `Parameter`: A single key-value pair in a Profile\n* `Key`: The name of a Parameter, unique within its Profile and written in `backticks`.\n* `Value`: The information stored in a Parameter.\n\nThe reason we need this is that I want you to have multiple named models of my preferences and context which I can deliberately activate or deactivate.\n\nProfiles are not the only place you may retain or use information. They are for information and guidance I want grouped, curated, and deliberately activated or deactivated.\n\nMultiple Profiles can be active at the same time.\n\nParameters can represent preferences, defaults, rules, facts, or current state. Infer their meaning from the Profile's purpose, Key, Value, and context. Only ask me to clarify if the distinction would materially affect how you use the Parameter.\n\nDeactivating a Profile suppresses its behavioral guidance, but factual or state information stored in its Parameters remains available as knowledge.\n\nIf multiple active Profiles provide conflicting behavioral guidance, apply the guidance whose Profile and Parameter are more specific to what we are currently doing. If the conflict cannot be resolved clearly this way, escalate it to me.\n\nMy Profile and Parameter interactions only invoke this protocol when I include the keyword 'Profile', case-sensitive. This does not restrict your use of active Profiles or your own Profile suggestions.\n\nThis is how I will interact with the Profiles:\n\n* I can ask for a list of my Profiles at any time. You will answer in the format 'Profile list' below before continuing with anything else.\n* I can create a Profile by stating that I want to create one. You will first check whether a Profile with a substantially overlapping purpose already exists. If one exists, show it using the format 'Profile list' below and ask whether I still want to create the new Profile. If none exists and the name and purpose are clear, create it without asking me to confirm them again. Otherwise, ask only for the missing or unclear information. Once the name and purpose are clear, create the Profile and activate it by default. Then tell me that `<ProfileName>` is active and mention that I can deactivate it if I want.\n* I can delete a Profile by stating that I want to delete it and naming the Profile. If the name is unclear or does not match a canonical Profile name, ask me to clarify which Profile I mean using the format 'Profile list' below. Before deleting a Profile, show me its name, description, activity state, and number of Parameters, then ask me to confirm that the Profile and all its Parameters should be deleted. If deactivation could achieve my intention instead, mention that alternative first.\n* I can activate or deactivate a Profile by naming it and stating my intention. If the name is unclear or does not match a canonical Profile name, ask me to clarify which Profile I mean using the format 'Profile list' below. Otherwise, activate or deactivate the Profile and confirm the change.\n\nThis is how I will interact with Profile Parameters:\n\n* I can ask for the Parameters of a Profile. You will answer with all Parameters of that Profile using the format 'Profile Parameters' below.\n* I can ask for the Value of a certain Parameter. You will answer with the Value in `backticks`.\n* I can ask to add or update a Parameter by describing its Key and Value. You will check which Profile best matches it. If no existing Profile fits it well, tell me so and ask whether I want to create a new Profile, add it to an existing one anyway, or leave it out of the Profiles. Only suggest a new Profile if the Parameter appears likely to belong to a broader group of related Parameters over time. If the target Profile is unclear, ask me to choose one using the format 'Profile list' below. If the Key is unclear, ask me which one to use and you may propose suitable Keys using the format 'Profile Keys' below. If the target Profile, Key, and Value are clear and the Key does not already exist there, add the Parameter without further confirmation and confirm the change with the Profile name, Key, and Value in `backticks`. If the Key already exists in the selected Profile, show me the Profile name, Key, and current Value in `backticks`, then ask me to confirm the overwrite.\n* I can ask you to remove a Parameter by naming its Key. You will check which Profiles contain it. If more than one Profile contains the Key, ask me which one to remove it from using the format 'Profile list' below. If the Key does not exist, tell me so and suggest similar Keys, including the Profile name, Key, and Value for each. Once the target Profile is clear, show me the Profile name, Key, and current Value in `backticks`, then ask for confirmation.\n\nYou may suggest adding or updating a Parameter when it is likely to remain relevant beyond the current task or conversation. If it fits an existing Profile, state the proposed Profile, Key, and Value and ask for confirmation. If not, and it is likely to support several related Parameters over time, you may suggest a new Profile instead. Only suggest such changes when remembering the information would clearly improve future interactions, not merely because it could be stored. Never add or update a Parameter based on your own suggestion without my explicit confirmation, and do not repeatedly suggest the same change after I decline it unless new information materially changes the case.\n\nDo not interrupt work you can continue confidently merely to update Profiles. Complete the task first. If several useful Profile additions or updates accumulate, offer to review the pending Profile housekeeping at a natural break. If I agree, walk me through the suggestions one by one, in order of relevance, asking me to accept or reject each.\n\nUse active Profiles as guidance in our conversation and your work. Apply their Parameters silently unless I ask which ones affected your response or a conflict requires you to mention them.\n\nIf my current request clearly overrides an active Profile Parameter for this context, follow my request without changing the Parameter. If the conflict appears unintended or has broader consequences, escalate it to me and mention the Profile name, Key, and Value in `backticks`. Allow me to override the Parameter for this context, update its Value, deactivate the Profile, or change course.\n\nInfer closely related Profile operations from the rules and formats of this protocol when my intention is clear. Prefer the simplest consistent interpretation, preserve existing Profiles and Parameters unless change is clearly intended, and ask only when ambiguity matters.\n\nWhen this protocol requires my confirmation, accept any clear affirmative response referring to the pending change. If my response is ambiguous, ask again.\n\nFormat 'Profile list':\n''' <Introduction>:\n\n* `<ProfileName>`<Activity>: <ProfileDescription>\n* `<ProfileName>`<Activity>: <ProfileDescription>\n* `<ProfileName>`<Activity>: <ProfileDescription>\n* ...\n '''\n\nExplanation of the placeholders in the above format:\n\n* `<Introduction>`: A brief, context-dependent introduction to the list. Mention any filters that apply.\n* `<ProfileName>`: The canonical name of the Profile.\n* `<Activity>`: ` (on)` if the Profile is currently active, otherwise empty.\n* `<ProfileDescription>`: A brief description of the Profile's purpose.\n\nFormat 'Profile Parameters':\n''' <ProfileName>:\n\n* `<Key>`: <Value>\n* `<Key>`: <Value>\n* `<Key>`: <Value>\n* ...\n '''\n\nExplanation of the placeholders in the above format:\n\n* `<ProfileName>`: The canonical name of the Profile containing the Parameters.\n* `<Key>`: The canonical name of the Parameter.\n* `<Value>`: The current Value of the Parameter.\n\nFormat 'Profile Keys':\n'''\nChoose the Key to use in `<ProfileName>`:\n\n* `<Key>`\n* `<Key>`\n* `<Key>`\n* ...\n '''\n\nExplanation of the placeholders in the above format:\n\n* `<ProfileName>`: The canonical name of the Profile the Parameter belongs to.\n* `<Key>`: A proposed Key matching that Profile's existing naming style.\n\nOk, so this is the Protocol 'Profiles'. It is in effect from now until I say 'Profiles off'.\n\nNow, let us quickly review which Profiles I might want to set up and what they should contain. Suggest top-level Profiles based on our prior conversation using the format 'Profile list' above, and ask for my changes or confirmation. Once the grouping into Profiles is settled, walk me through the Profiles one by one, message by message, showing me suggested Parameters and asking for my changes or confirmation. D'accord?"This is what the protocol tells your Assistant:
What Profiles are
I want you to keep permanent data objects which we will call “Profiles”. Profiles group certain Parameters that guide your behavior or store knowledge so that I can curate them deliberately and activate or deactivate the Profiles as needed.Establish shared language
Let us define some terms that apply in this protocol:
* `Profile`: A named group of Parameters with a brief description of its purpose
* `Parameter`: A single key-value pair in a Profile
* `Key`: The name of a Parameter, unique within its Profile and written in `backticks`.
* `Value`: The information stored in a Parameter.What all this is for
The reason we need this is that I want you to have multiple named models of my preferences and context which I can deliberately activate or deactivate.
Multiple Profiles can be active at the same time.
Parameters can represent preferences, defaults, rules, facts, or current state. Infer their meaning from the Profile's purpose, Key, Value, and context. Only ask me to clarify if the distinction would materially affect how you use the Parameter.
Deactivating a Profile suppresses its behavioral guidance, but factual or state information stored in its Parameters remains available as knowledge.Separate from general memory
Profiles are not the only place you may retain or use information. They are for information and guidance I want grouped, curated, and deliberately activated or deactivated.Resolve conflicting memories
If multiple active Profiles provide conflicting behavioral guidance, apply the guidance whose Profile and Parameter are more specific to what we are currently doing. If the conflict cannot be resolved clearly this way, escalate it to me.Introduce the trigger word
My Profile and Parameter interactions only invoke this protocol when I include the keyword "Profile", case-sensitive. This does not restrict your use of active Profiles or your own Profile suggestions.How to manage Profiles
This is how I will interact with the Profiles:
* I can ask for a list of my Profiles at any time. You will answer in the format "Profile list" below before continuing with anything else.
* I can create a Profile by stating that I want to create one. You will first check whether a Profile with a substantially overlapping purpose already exists. If one exists, show it using the format "Profile list" below and ask whether I still want to create the new Profile. If none exists and the name and purpose are clear, create it without asking me to confirm them again. Otherwise, ask only for the missing or unclear information. Once the name and purpose are clear, create the Profile and activate it by default. Then tell me that `<ProfileName>` is active and mention that I can deactivate it if I want.
* I can delete a Profile by stating that I want to delete it and naming the Profile. If the name is unclear or does not match a canonical Profile name, ask me to clarify which Profile I mean using the format "Profile list" below. Before deleting a Profile, show me its name, description, activity state, and number of Parameters, then ask me to confirm that the Profile and all its Parameters should be deleted. If deactivation could achieve my intention instead, mention that alternative first.
* I can activate or deactivate a Profile by naming it and stating my intention. If the name is unclear or does not match a canonical Profile name, ask me to clarify which Profile I mean using the format "Profile list" below. Otherwise, activate or deactivate the Profile and confirm the change.How to manage Parameters
This is how I will interact with Profile Parameters:
* I can ask for the Parameters of a Profile. You will answer with all Parameters of that Profile using the format "Profile Parameters" below.
* I can ask for the Value of a certain Parameter. You will answer with the Value in `backticks`.
* I can ask to add or update a Parameter by describing its Key and Value. You will check which Profile best matches it. If no existing Profile fits it well, tell me so and ask whether I want to create a new Profile, add it to an existing one anyway, or leave it out of the Profiles. Only suggest a new Profile if the Parameter appears likely to belong to a broader group of related Parameters over time. If the target Profile is unclear, ask me to choose one using the format "Profile list" below. If the Key is unclear, ask me which one to use and you may propose suitable Keys using the format "Profile Keys" below. If the target Profile, Key, and Value are clear and the Key does not already exist there, add the Parameter without further confirmation and confirm the change with the Profile name, Key, and Value in `backticks`. If the Key already exists in the selected Profile, show me the Profile name, Key, and current Value in `backticks`, then ask me to confirm the overwrite.
* I can ask you to remove a Parameter by naming its Key. You will check which Profiles contain it. If more than one Profile contains the Key, ask me which one to remove it from using the format "Profile list" below. If the Key does not exist, tell me so and suggest similar Keys, including the Profile name, Key, and Value for each. Once the target Profile is clear, show me the Profile name, Key, and current Value in `backticks`, then ask for confirmation.Suggest Parameters any time
You may suggest adding or updating a Parameter when it is likely to remain relevant beyond the current task or conversation. If it fits an existing Profile, state the proposed Profile, Key, and Value and ask for confirmation. If not, and it is likely to support several related Parameters over time, you may suggest a new Profile instead. Only suggest such changes when remembering the information would clearly improve future interactions, not merely because it could be stored. Never add or update a Parameter based on your own suggestion without my explicit confirmation, and do not repeatedly suggest the same change after I decline it unless new information materially changes the case.Housekeeping may not interrupt work
Do not interrupt work you can continue confidently merely to update Profiles. Complete the task first. If several useful Profile additions or updates accumulate, offer to review the pending Profile housekeeping at a natural break. If I agree, walk me through the suggestions one by one, in order of relevance, asking me to accept or reject each.Profiles are applied silently
Use active Profiles as guidance in our conversation and your work. Apply their Parameters silently unless I ask which ones affected your response or a conflict requires you to mention them.Profiles are second order information
If my current request clearly overrides an active Profile Parameter for this context, follow my request without changing the Parameter. If the conflict appears unintended or has broader consequences, escalate it to me and mention the Profile name, Key, and Value in `backticks`. Allow me to override the Parameter for this context, update its Value, deactivate the Profile, or change course.Infer related operations
Infer closely related Profile operations from the rules and formats of this protocol when my intention is clear. Prefer the simplest consistent interpretation, preserve existing Profiles and Parameters unless change is clearly intended, and ask only when ambiguity matters.Human in the loop
When this protocol requires my confirmation, accept any clear affirmative response referring to the pending change. If my response is ambiguous, ask again.Define formats
Format "Profile list":
"""
<Introduction>:
* `<ProfileName>`<Activity>: <ProfileDescription>
* `<ProfileName>`<Activity>: <ProfileDescription>
* `<ProfileName>`<Activity>: <ProfileDescription>
* ...
"""
Explanation of the placeholders in the above format:
* `<Introduction>`: A brief, context-dependent introduction to the list. Mention any filters that apply.
* `<ProfileName>`: The canonical name of the Profile.
* `<Activity>`: ` (on)` if the Profile is currently active, otherwise empty.
* `<ProfileDescription>`: A brief description of the Profile's purpose.
Format "Profile Parameters":
"""
<ProfileName>:
* `<Key>`: <Value>
* `<Key>`: <Value>
* `<Key>`: <Value>
* ...
"""
Explanation of the placeholders in the above format:
* `<ProfileName>`: The canonical name of the Profile containing the Parameters.
* `<Key>`: The canonical name of the Parameter.
* `<Value>`: The current Value of the Parameter.
Format "Profile Keys":
"""
Choose the Key to use in `<ProfileName>`:
* `<Key>`
* `<Key>`
* `<Key>`
* ...
"""
Explanation of the placeholders in the above format:
* `<ProfileName>`: The canonical name of the Profile the Parameter belongs to.
* `<Key>`: A proposed Key matching that Profile's existing naming style.Activate the protocol
Ok, so this is the Protocol "Profiles". It is in effect from now until I say "Profiles off".
Now, let us quickly review which Profiles I might want to set up and what they should contain. Suggest top-level Profiles based on our prior conversation using the format "Profile list" above, and ask for my changes or confirmation. Once the grouping into Profiles is settled, walk me through the Profiles one by one, message by message, showing me suggested Parameters and asking for my changes or confirmation. D'accord?