Skip to content

Commit 4cd18a7

Browse files
committed
Defer agent property resolution to execution time
Property zone.clanker.openspec.agents is now read lazily via a provider instead of eagerly during configuration. This ensures project-level gradle.properties is visible even when the plugin is applied from an init script (beforeSettings).
1 parent 27e9b20 commit 4cd18a7

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

src/main/kotlin/zone/clanker/gradle/OpenSpecSettingsPlugin.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,13 @@ class OpenSpecSettingsPlugin : Plugin<Settings> {
4646

4747
val extension = project.extensions.create("openspec", OpenSpecExtension::class.java)
4848

49-
// Resolve agents from gradle property: zone.clanker.openspec.agents=github,claude
50-
val agentsProp = project.findProperty("zone.clanker.openspec.agents")?.toString()?.trim() ?: "github"
51-
val tools = parseAgents(agentsProp)
52-
extension.tools.set(tools)
49+
// Resolve agents lazily via provider so project-level gradle.properties is visible
50+
// even when applied from an init script (beforeSettings)
51+
val toolsProvider = project.provider {
52+
val agentsProp = project.findProperty("zone.clanker.openspec.agents")?.toString()?.trim() ?: "github"
53+
parseAgents(agentsProp)
54+
}
55+
extension.tools.set(toolsProvider)
5356

5457
project.tasks.register("openspecSync", OpenSpecSyncTask::class.java).configure(object : org.gradle.api.Action<OpenSpecSyncTask> {
5558
override fun execute(task: OpenSpecSyncTask) {

0 commit comments

Comments
 (0)